Apa yang dilakukan “use strict” dalam JavaScript, dan apa alasan di baliknya

Apa yang dilakukan “use strict” dalam JavaScript, dan apa alasan di baliknya

iis

September 9, 2019

Baru-baru ini, saya menjalankan beberapa kode JavaScript saya melalui Crockford’s JSLint, dan memberikan kesalahan berikut:

Problem at line 1 character 1: Missing "use strict" statement.

Melakukan pencarian, saya menyadari bahwa beberapa orang menambahkan “use strict”; ke dalam kode JavaScript mereka. Setelah saya menambahkan pernyataan, kesalahan berhenti muncul. Sayangnya, Google tidak mengungkapkan banyak sejarah di balik pernyataan string ini. Tentu saja ada hubungannya dengan bagaimana JavaScript ditafsirkan oleh browser, tapi saya tidak tahu apa efeknya.

Jadi apa yang “use strict”; semua tentang, apa implikasinya, dan apakah itu masih relevan?

Apakah ada dari browser saat ini menanggapi “use strict”; string atau apakah untuk digunakan di masa depan?

javascript-illustration

Strict Mode adalah fitur baru dalam ECMAScript 5 yang memungkinkan Anda menempatkan program, atau fungsi, dalam konteks operasi “use strict”. Konteks ketat ini mencegah tindakan tertentu yang diambil dan melemparkan lebih banyak pengecualian.

Dan:

Strict Mode membantu dalam beberapa cara:

Ini menangkap beberapa kode kesalahan umum, melempar pengecualian.
Ini mencegah, atau melempar kesalahan, ketika tindakan yang relatif “tidak aman” diambil (seperti mendapatkan akses ke objek global).
Ini menonaktifkan fitur yang membingungkan atau dipikirkan dengan buruk.

Perhatikan juga Anda dapat menerapkan “strict mode” ke seluruh file … Atau Anda dapat menggunakannya hanya untuk fungsi tertentu (masih mengutip dari artikel John Resig):

// Non-strict code...
(function(){
"use strict";
// Define your library strictly...
})();
// Non-strict code...

Yang mungkin bisa membantu jika Anda harus mencampur kode lama dan baru 😉

Jadi, saya kira itu agak seperti “use strict” yang dapat Anda gunakan dalam Perl (hence the name?): Ini membantu Anda membuat lebih sedikit kesalahan, dengan mendeteksi lebih banyak hal yang dapat menyebabkan kerusakan.

Strict mode sekarang didukung oleh semua browser utama.

Di dalam modul ECMAScript asli (dengan pernyataan import dan eksport) dan kelas ES6, mode ketat selalu diaktifkan dan tidak dapat dinonaktifkan.