Praktik Paling Baik Pemrograman JavaScript
- Halaman Sebelumnya Panduan Gaya JS
- Halaman Berikutnya Kesalahan JS
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 diubah oleh skrip lain.
gunakan variabel lokal sebagai pengganti, dan belajar bagaimana menggunakankelompok.
selalu deklarasikan variabel lokal
semua variabel yang digunakan di dalam fungsi harus dideklarasikan sebagailokalvariabel.
variabel lokalwajibdengan var dengan kata kunci untuk deklarasikan, sebaliknya mereka akan menjadi variabel global.
mode yang ketat tidak mengijinkan variabel yang belum dideklarasikan.
deklarasi di atas
satu kebiasaan yang bagus adalah menempatkan semua deklarasi di atas setiap skrip atau fungsi.
Manfaatnya adalah:
- mendapatkan kode yang lebih bersih
- menyediakan tempat yang bagus untuk mencari variabel lokal
- lebih mudah menghindari variabel global yang tidak perlu
- mengurangi kemungkinan pere宣言 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;
juga dapat digunakan untuk variabel perulangan:
// deklarasi di atas var i; // digunakan nanti for (i = 0; i < 5; i++) {
secara default, JavaScript akan memindahkan semua deklarasi ke atas (JavaScript hoisting).
inisialisasi variabel
Habit menginisialisasi variabel saat mendeklarasikannya adalah baik.
Manfaatnya adalah:
- kode yang lebih rapi
- inisialisasi variabel di tempat yang terpisah
- hindari nilai yang belum diatur
// Pemilihan deklarasi dan inisialisasi di awal var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
Inisialisasi variabel memungkinkan kita mengetahui penggunaan yang diharapkan dan tipe data yang diharapkan.
Jangan deklarasikan objek angka, string, atau boolean
Selalu lihat angka, string, atau boolean sebagai nilai dasar, bukan objek.
Jika mengklasifikasikan tipe ini sebagai objek, akan menurunkan kecepatan eksekusi dan menghasilkan efek samping yang mengecewakan:
Contoh
var x = "Bill"; var y = new String("Bill"); (x === y) // Hasilnya false, karena x adalah string dan y adalah objek.
atau bahkan yang buruknya:
Contoh
var x = new String("Bill"); var y = new String("Bill"); (x == y) // Hasilnya false, karena Anda tidak dapat 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()
Contoh
var x1 = {}; // Baru object baru var x2 = ""; // Baru nilai string dasar var x3 = 0; // Baru nilai numerik dasar var x4 = false; // Baru nilai boolean dasar var x5 = []; // Baru object array var x6 = /()/; // Baru ekspresi reguler var x7 = function(){}; // Baru object fungsi
Anda harus menyadari pemuatan tipe otomatis
Anda harus menyadari bahwa angka dapat secara tak sengaja diubah menjadi string atau NaN
(Bukan Angka).
JavaScript adalah tipe lemah. Variabel dapat mengandung berbagai tipe data, dan variabel dapat berubah tipe datanya:
Contoh
var x = "Hello"; // typeof x adalah string x = 5; // Ubah typeof x menjadi numerik
Jika melakukan operasi matematika, JavaScript dapat mengkonversi bilangan ke string:
Contoh
var x = 5 + 7; // x.valueOf() adalah 12, typeof x adalah numerik 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 numerik var x = 5 - "7"; // x.valueOf() adalah -2, typeof x adalah numerik var x = "5" - 7; // x.valueOf() adalah -2, typeof x adalah numerik var x = 5 - "x"; // x.valueOf() adalah NaN, typeof x adalah numerik
Mengurangi string dengan string tidak akan menghasilkan kesalahan tetapi mengembalikan NaN
(Tidak ada Bilangan):
Contoh
"Hello" - "Dolly" // mengembalikan NaN
Gunakan === untuk membandingkan
==
Operator perbandingan selalu melakukan konversi tipe sebelum membandingkan (untuk mencocokkan tipe).
===
Operator akan memaksa perbandingan nilai dan tipe:
Contoh
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
Menggunakan Parameter Defaults
jika parameter yang kurang saat memanggil fungsi, nilai parameter yang hilang akan diatur sebagai tak_didefinisikan
.
tak_didefinisikan
nilai akan merusak kode Anda. Menetapkan nilai default untuk parameter adalah kebiasaan yang bagus.
Contoh
fungsi myFunction(x, y) { jika (y === tak_didefinisikan) { y = 0; } }
SilakanParameter FungsiBaca lebih lanjut tentang parameter fungsi di bab ini.
default untuk menutup switch
Gunakan default
untuk menutup switch
Perintah. bahkan jika Anda berpikir tidak perlu adanya.
Contoh
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 the use of eval()
eval()
Fungsi digunakan untuk memungkinkan teks sebagai kode. Pada hampir semua kasus, tidak perlu digunakan.
Karena memungkinkan eksekusi kode arbitrer, ini juga berarti risiko keamanan.
- Halaman Sebelumnya Panduan Gaya JS
- Halaman Berikutnya Kesalahan JS