Hari ini saya menemukan pertanyaan di Github tentang cara menggunakan JavaScript dengan benar untuk pengembangan program kami. Aku tanpa malu -malu datang dengan aslinya ... ini penipuan. Mari kita bagikan dengan Anda.
Pendekatan yang sebagian besar masuk akal untuk JavaScript.
Jenis // Ketik
Objek // Objek
Array // array
String // string
Fungsi // fungsi
Properti // Properti
Variabel // Variabel
Mengangkat // Peningkatan Variabel
Ekspresi Bersyarat & Kesetaraan // Ekspresi dan Kesetaraan Bersyarat.
Blok // Kode Blok
Komentar // Komentar
Whitespace // Space
Koma // koma
Titik koma // titik koma
Ketik casting & paksaan // Ketik konversi
Konvensi Penamaan // Aturan Penamaan
Accessors // Access
Konstruktor // Konstruktor
Acara // Waktu
Modul // Model
jQuery //
ECMASCRIPT 5 Kompatibilitas // Kompatibilitas ECMA 5
Pengujian // Pengujian
Kinerja // Kinerja
Sumber Daya // Sumber Daya
Di alam liar
Terjemahan
Panduan Panduan Gaya JavaScript
Kontributor
Lisensi
Jenis (Jenis)
Jenis primitif: Saat mengakses tipe primitif, itu sebenarnya secara langsung mengakses isi tipe primitif.
rangkaian
nomor
Boolean
batal
belum diartikan
var foo = 1,
bar = foo;
bar = 9;
console.log (foo, bar); // => 1,9
Jenis Kompleks: Saat Anda mengakses tipe data tipe yang kompleks, Anda benar -benar mengakses nilai variabel melalui referensi.
obyek
array
fungsi
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
objek (objek)
Gunakan objek literal untuk membuat objek (literal)
// item badvar = objek baru (); // item goodvar = {};Jangan gunakan kata kunci yang dicadangkan sebagai nama properti objek. Ini tidak akan berhasil di bawah IE8.
// badvar superman = {default: {clark: 'kent'}, private: true}; // goodvar superman = {defaults: {clark: 'kent'}, tersembunyi: true};array (array)
Gunakan juga metode literal untuk membuat array
// item badvar = array baru (); // item goodvar = [];
Jika Anda tidak tahu panjang array, maka gunakan metode built-in array untuk operasi penyisipan
var somestack = []; // badsomeStack [somestack.length] = 'vein'; // goodsomeStack.push ('vena');Saat Anda ingin menyalin array, gunakan array.slice
var len = items.length, // mengacu pada konten di atas ... itemcopy = [], i; // badfor (i = 0; i <len; ++ i) {itemcopy [i] = item [i];} // gooditemcopy = items.slice (); // Saya perlu memperhatikan di sini. Saya benar -benar tidak tahu ini ...String string
Gunakan satu kutipan untuk melampirkan string ... // Saya belum menemukan penjelasan yang cocok untuk kinerja di sini, saya pribadi suka menggunakannya seperti ini, (lebih baik memakai kurang dari pakaian ... Anda tahu ...)
// name badvar = "bob parr"; // name goodvar = 'bob parr'; // badvar fullname = "bob" + this.lastname; // goodvar fullname = 'bob' + this.lastname;
Ketika string lebih dari 80 karakter, Anda perlu menggunakan gabungan string untuk menulis di beberapa baris. Perhatikan bahwa jika terlalu sering digunakan, gabungan string akan memengaruhi kinerja.
// Badvar errorMessage = 'Ini adalah kesalahan super panjang yang dilemparkan karena Batman. Ketika Anda berhenti untuk berpikir tentang bagaimana Batman ada hubungannya dengan ini, Anda tidak akan mendapatkan ke mana -mana. '; // Badvar ErrorMessage =' Ini adalah kesalahan super panjang yang dilemparkan karena/dari Batman. Ketika Anda berhenti untuk berpikir tentang bagaimana Batman memiliki sesuatu untuk dilakukan /dengan ini, Anda tidak akan mendapatkan tempat /fast.';// goodvar errorMessage = 'Ini adalah kesalahan super panjang yang dilemparkan karena' +'dari Batman. Ketika Anda berhenti untuk berpikir tentang bagaimana Batman ada hubungannya ' +' dengan ini, Anda tidak akan mendapatkan ke mana -mana dengan cepat. ';
Jika Anda membuat array dengan cara yang direncanakan, seperti berikut ini. Menggunakan array.noin akan bekerja lebih baik ..
var item, pesan, panjang, i; pesan = [{stat: 'success', pesan: 'yang ini berhasil'}, {stat: 'Success', pesan: 'yang ini berfungsi'}, {stat: 'Success', pesan: 'yang ini berfungsi'}]; panjang = pesan. + messages[i].message + '</li>';}return items + '</ul>';}//goodfunction inbox(messages){items = [];for( i = 0; i < length ; i++){items[i] = messages[i].message;}return '<ul><li>' + items.join('</li><li>') + '</li> </ul>';}Fungsi
// Ekspresi fungsi anonim..var anonymous = function () {return true;}; // nama function expression.var named = function named () {return true;}; // function referensi instan (function () {console.log ('Selamat datang di internet. Harap ikuti saya.');}) ();Jangan pernah mendefinisikan fungsi dalam kode blok non-fungsi (IF, while). Sejalan dengan itu, fungsi ditetapkan ke nama variabel eksternal di tengah blok kode.
// badif (currentUser) {function test () {console.log ('nope.');}} // test goodvar; if (currentUser) {test = function () {console.log ('yup'); }; // Berhati-hatilah dengan semi-kolon.}Properti (properti)
Gunakan sintaks dot untuk mengakses properti.
var luke = {jedi: true, usia: 28}; // badvar isjedi = luke ['jedi']; // goodvar isjedi = lucky.jedi;Saat mengakses properti objek menggunakan variabel, gunakan braket persegi untuk mengakses
var luke = {jedi: true, usia: 28}; function getProp (prop) {return luke [prop];} var isjedi = getProp ('jedi');