JavaScript adalah bahasa pemaaf. Beberapa sintaksnya adalah opsional, dan bahasa pulih dari kesalahan dengan lebih anggun daripada banyak lainnya. Tapi pegangan tangan ini memiliki hukuman: lebih mudah untuk memperkenalkan bug, dan kode yang tidak konsisten lebih sulit untuk dibaca.
Untungnya, jika Anda ingin lebih disiplin, ada cara mudah untuk melakukannya: mode ketat. Mode ketat adalah cara meminta JavaScript untuk bereaksi lebih tegas saat menemui masalah dalam kode Anda.
Apa Itu Mode Ketat?
Beberapa bahasa menggunakan konsep mode ketat: mode yang mengevaluasi dan menjalankan kode lebih ketat. Anda mungkin akrab dengan doctype ketat HTML, yang tidak menggunakan elemen dan atribut tertentu.
Perl, bahasa skrip lain yang ditafsirkan, telah lama memiliki mode ketatnya sendiri. Mode ini melarang jenis ekspresi tidak aman tertentu.
Bagaimana Saya Menggunakan Mode Ketat dalam JavaScript?
Di dalam skrip, letakkan pernyataan "gunakan ketat" tepat di atas, sebelum pernyataan lainnya:
// seluruh skrip ini akan berada dalam mode ketat
'gunakan ketat';
Perhatikan bahwa Anda dapat menyertakan komentar sebelumnya, tetapi tidak ada pernyataan. Anda dapat mengaktifkan mode ketat dalam file JavaScript, atau di awal blok skrip dalam file HTML. Anda juga dapat mengaktifkan mode ketat berdasarkan fungsi demi fungsi:
fungsi ketat() {
// Sintaks mode ketat tingkat fungsi
'gunakan ketat';
return "Fungsi ini ketat";
}
fungsi longgar() {
return "Fungsi ini TIDAK ketat";
}
Setelah Anda mengaktifkan mode ketat, pastikan Anda menguji kode Anda. Jika Anda bekerja dengan web, buka a Konsol JavaScript, sehingga Anda dapat mengidentifikasi kesalahan baru.
Apa yang Dilakukan Mode Ketat JavaScript?
Singkatnya, mode ketat akan kurang memaafkan jenis kode bermasalah tertentu. Daripada mengabaikan masalah dan melanjutkan eksekusi, kesalahan tertentu akan menghentikan skrip. Ini seringkali lebih aman daripada melanjutkan dalam keadaan yang tidak diinginkan.
Mencegah Global yang Tidak Disengaja
Contoh terbaik yang dilindungi oleh mode ketat adalah pembuatan variabel global yang tidak disengaja. Dalam eksekusi normal, kode ini:
myVar = 17;
Ini akan membuat properti bernama myVar pada objek global, dengan asumsi Anda belum pernah mendeklarasikan myVar. Di browser web, objek global biasanya jendela:
console.log (window.myVar);
>> 17
Namun, jika Anda menyertakan pernyataan "gunakan ketat", Anda akan melihat kesalahan di konsol, seperti:
Kesalahan Referensi Tidak Tertangkap: myVar tidak ditentukan
Alasan mengapa ini sangat berguna adalah karena ia mengambil kasus kesalahan ketik yang umum. Sangat mudah untuk salah ketik nama variabel, dan banyak bahasa akan menangkap kita pada kesalahan seperti itu.
Tetapi JavaScript, secara default, hanya mengasumsikan ruang lingkup objek global dan berlanjut seolah-olah tidak ada yang salah. Beberapa kode mungkin sengaja bergantung pada perilaku itu, yang merupakan sesuatu yang harus Anda ketahui saat memutuskan untuk menggunakan mode ketat.
Lihat juga: Bagaimana Menjaga Kode Anda Tetap Bersih Dengan Enkapsulasi Objek
Membuat Kegagalan Eksplisit
Beberapa perilaku dalam JavaScript gagal, tetapi melakukannya secara diam-diam. Anda mungkin tidak tahu tentang kesalahan tersebut kecuali Anda secara khusus memeriksanya. Misalnya, NaN adalah properti khusus dari objek global yang mewakili nomor yang tidak valid. Properti ini hanya-baca, tetapi Anda masih dapat mencoba menulis padanya:
NaN = 2;
>> 2
Tetapi meskipun sepertinya tugas itu berhasil, itu tidak:
NaN
>> NaN
Dalam mode ketat, Anda akan mendapatkan kesalahan aktual yang memberi tahu Anda bahwa Anda tidak dapat menetapkan ke NaN. Kode ini menggunakan fungsi sehingga Anda dapat mendemonstrasikan mode ketat di konsol:
javascript
function badNaN() { "gunakan ketat"; jendela. NaN = 2; }
>> tidak terdefinisi
burukNan()
>> Uncaught TypeError: Tidak dapat menetapkan untuk hanya membaca properti 'NaN' dari objek '#'
di badNaN (:1:46)
di :1:1
Ini adalah contoh klasik yang menunjukkan, sementara ketidaktahuan mungkin merupakan kebahagiaan, terkadang lebih baik untuk mengetahui apakah ada yang tidak beres.
Memperingatkan Tentang Parameter Duplikat
Contoh terakhir berkaitan dengan fitur JavaScript yang kurang diketahui. Anda mungkin terkejut mengetahui bahwa nama parameter tidak harus unik:
function dupeParam (a, a, c) { console.log (a); }
>> tidak terdefinisi
dupeParam (2, 4, 8)
>> 4
Perhatikan bahwa JavaScript memberikan nilai terbaru ke parameter duplikat. Sekarang, perilaku ini tidak terlalu berguna. Faktanya, akan lebih berguna bagi JavaScript untuk memberi tahu kami bahwa ini adalah kesalahan, dan itulah yang dilakukan mode ketat:
function dupeParam (a, a, c) { "gunakan ketat"; }
<< Uncaught SyntaxError: Nama parameter duplikat tidak diizinkan dalam konteks ini
Gunakan Mode Ketat untuk Keyakinan Kode Ekstra
Praktik yang baik dan sarana untuk menegakkannya berjalan beriringan. Dalam beberapa konteks, seperti peran pemrograman profesional, Anda harus menerapkan disiplin sebanyak mungkin. Bahkan jika Anda hanya mengerjakan proyek sumber terbuka hobi, pengelola mungkin lebih suka menggunakan mode ketat sebagai standar.
Pada akhirnya, terserah Anda, tetapi mengetahui ada uluran tangan akan berguna. Sebagai seorang programmer, Anda harus selalu mencari praktik terbaik dan apa yang dapat Anda lakukan untuk menerapkannya.
Kode Anda harus jelas dan mudah dirawat. Berikut adalah beberapa prinsip pemrograman lain untuk membantu Anda membersihkan tindakan Anda.
Baca Selanjutnya
- Pemrograman
- JavaScript
- Pengembangan web
- Bahasa pemrograman
Bobby adalah penggemar teknologi yang bekerja sebagai pengembang perangkat lunak selama hampir dua dekade. Dia bersemangat tentang game, bekerja sebagai Pemimpin Redaksi di Majalah Switch Player, dan mendalami semua aspek penerbitan online & pengembangan web.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan