Dalam JavaScript, VAR digunakan untuk mendeklarasikan variabel, tetapi sintaks ini tidak sepenuhnya diperlukan. Sering kali, kita dapat secara langsung menggunakan variabel tanpa menggunakan VAR untuk mendeklarasikannya.
Salinan kode adalah sebagai berikut:
var x = "xx";
y = "xxx";
Dan sebagainya. Ada masalah dengan ini. Misalnya, dalam baris dalam kode, saya ingin menggunakan variabel x yang dinyatakan. Akibatnya, karena kesalahan pengetikan atau ejaan, variabel ini ditulis sebagai y. Hasilnya setara dengan deklarasi "implisit" dari variabel y. Dalam pemrograman yang sebenarnya, kesalahan ini terkadang sulit dideteksi.
Ketika Anda membuat deklarasi "implisit" ini dalam konteks saat ini, mesin JavaScript pertama -tama akan mencari apakah variabel ini telah dinyatakan sebelumnya dalam konteks saat ini. Jika tidak, maka cari di tingkat konteks sebelumnya. Jika belum ditemukan, akhirnya akan mendeklarasikan variabel ini di jendela!
Misalnya:
Kodenya adalah sebagai berikut:
jendela. y = "halo"; fungsi func () {y = "Oh, tidak !!!"; } func (); waspada (window.y); //#=> display "Oh, tidak !!!"Ketika lapisan dalam konteks memiliki definisi variabel "implisit" seperti itu, variabel lapisan itu akan dimodifikasi tanpa menghasilkan variabel baru pada jendela. (Jenis bug ini cukup menjengkelkan, terutama kode yang lebih kompleks yang dienkapsulasi)
Misalnya:
Kodenya adalah sebagai berikut:
var x = "window.x"; fungsi a () {var x = "a's x"; var b = function () {var c = function () {// tidak var! x = "c's x:"; }; alert ("sebelum c run, bx:" + x); C(); peringatan ("Setelah C run, bx:" + x); }; peringatan ("Ax adalah:" + x); B(); Peringatan ("Setelah Fungsi B berjalan, kapak adalah:" + x); }; peringatan ("Sebelum run, window.x:" + x); A(); alert ("Setelah menjalankan, window.x:" + x);Ada lapisan berikut di sini: Window, Func A, Func B, Func C selalu bersarang di level. Jendela-> A-> B-> C.
Jendela dan A Define Variable X, dan B tidak didefinisikan. X dinyatakan dalam C, yang akhirnya memodifikasi nilai variabel a.
Ingat, dalam JavaScript, menyatakan variabel, dan Anda harus menambahkan VAR sebelumnya.