Praktik yang terbaik JavaScript
- Previous Page JS Style Guide
- Next Page JS Errors
hindari variabel global,new
,===
,eval()
hindari variabel global
coba untuk mengurangi penggunaan variabel global.
termasuk semua tipe data, objek dan fungsi.
variabel global dan fungsi dapat dijalankan ulang oleh skrip lain.
gunakan variabel lokal sebagai pengganti, dan pelajari bagaimana untuk menggunakanklosur。
selalu deklarasikan variabel lokal
semua variabel yang digunakan di dalam fungsi harus dideklarasikan sebagailokalvariabel.
variabel lokalwajibmelalui var menggunakan kata kunci untuk deklarasi, atau mereka akan menjadi variabel global.
mode yang ketat tidak mengizinkan variabel yang belum diumumkan.
deklarasi di atas
satu kebiasaan baik dalam pemrograman adalah menempatkan semua deklarasi di atas setiap skrip atau fungsi.
Manfaatnya adalah:
- mendapatkan kode yang lebih bersih
- menyediakan tempat yang baik untuk mencari variabel lokal
- lebih mudah menghindari variabel global yang tidak perlu
- mengurangi kemungkinan deklarasi ulang yang tidak perlu
// deklarasi di atas var firstName, lastName, price, discount, fullPrice; // digunakan nanti firstName = "Bill"; lastName = "Gates"; price = 19.90; discount = 0.10; fullPrice = price * 100 / discount;
boleh digunakan untuk variabel perulangan:
// deklarasi di atas var i; // digunakan nanti for (i = 0; i < 5; i++) {
secara lalai, JavaScript akan memindahkan semua deklarasi ke atas (JavaScript hoisting).
inisialisasi variabel
Merupakan kebiasaan yang baik untuk menginisialisasi variabel ketika anda mengumumkannya.
Manfaatnya adalah:
- Kode yang lebih bersih
- Inisialisasi variabel di tempat yang terpisah
- Penghindaran nilai tak definisi
// Pemulaian dan inisialisasi di awal var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
Pemulaian variabel memungkinkan kami untuk memahami penggunaan yang diharapkan dan jenis data yang diharapkan.
Jangan mengumumkan nombor, string atau boolean objek
Anda harus selalu melihat nombor, string atau boolean sebagai nilai asal, bukan objek.
Jika anda mengumumkan jenis jenis ini sebagai objek, akan menurunkan kelajuan eksekusi dan menghasilkan kesan buruk:
Example
var x = "Bill"; var y = new String("Bill"); (x === y) // Hasilnya adalah false, kerana x adalah string, sementara y adalah objek.
atau bahkan yang buruk:
Example
var x = new String("Bill"); var y = new String("Bill"); (x == y) // Hasilnya adalah false, kerana anda tak boleh membandingkan objek.
Jangan gunakan new Object()
- Gunakan {} untuk menggantikan new Object()
- Gunakan "" untuk menggantikan new String()
- Gunakan 0 untuk menggantikan new Number()
- Gunakan false untuk menggantikan new Boolean()
- Gunakan [] untuk menggantikan new Array()
- Gunakan /()/ untuk menggantikan new RegExp()
- Gunakan function (){} untuk menggantikan new Function()
Example
var x1 = {}; // Baru objek baru var x2 = ""; // Baru nilai string asal var x3 = 0; // Baru nilai angka asal var x4 = false; // Baru nilai boolean asal var x5 = []; // Baru objek array var x6 = /()/; // Baru ekspresi reguler var x7 = function(){}; // Baru objek fungsi
Anda harus menyadari penukaran jenis secara automatik
Anda harus menyadari bahawa nombor boleh secara tak sengaja diubah kepada string atau NaN
(Bukan Bilangan)。
JavaScript adalah jenis lepas. Variabel boleh mengandungi jenis data yang berbeza, dan variabel boleh mengubah jenis datanya:
Example
var x = "Hello"; // typeof x adalah string x = 5; // Ubah typeof x kepada bilangan
Jika melakukan operasi matematik, JavaScript dapat mengubah nilai ke string:
Example
var x = 5 + 7; // x.valueOf() adalah 12, typeof x adalah bilangan var x = 5 + "7"; // x.valueOf() adalah 57, typeof x adalah string var x = "5" + 7; // x.valueOf() adalah 57, typeof x adalah string var x = 5 - 7; // x.valueOf() adalah -2, typeof x adalah bilangan var x = 5 - "7"; // x.valueOf() adalah -2, typeof x adalah bilangan var x = "5" - 7; // x.valueOf() adalah -2, typeof x adalah bilangan var x = 5 - "x"; // x.valueOf() adalah NaN, typeof x adalah bilangan
Mengurangkan string dengan string, akan mengembalikan NaN
(Tidak ada Bilangan):
Example
"Hello" - "Dolly" // kembalikan NaN
Gunakan === untuk membandingkan
==
Pembanding selalu melakukan penukaran jenis sebelum membandingkan (untuk memadankan jenis).
===
Operator akan memaksa pembandingan nilai dan jenis:
Example
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
Penggunaan Parameter Defaults
jika kurang satu parameter ketika memanggil fungsi, nilai parameter yang hilang akan diatur kepada tak ditakrifkan
。
tak ditakrifkan
nilai akan merosakkan kod anda. Menetapkan nilai asal untuk parameter adalah kebiasaan yang baik.
Example
function myFunction(x, y) { jika (y === tak ditakrifkan) { y = 0; } }
Please checkFunction ParametersRead more about function parameters in this chapter.
to end the switch with default
Please use default
to end your switch
statement. Even if you think there is no need for it.
Example
switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; default: day = "Unknown"; }
Avoid using eval()
eval()
Functions are used to allow text as code. In almost all cases, there is no need to use it.
Because it allows arbitrary code to run, it also means security issues.
- Previous Page JS Style Guide
- Next Page JS Errors