Rumah > hujung hadapan web > tutorial js > Mengapa kita perlu menambah kata kunci var semasa mengisytiharkan pembolehubah dalam petua JavaScript_javascript

Mengapa kita perlu menambah kata kunci var semasa mengisytiharkan pembolehubah dalam petua JavaScript_javascript

WBOY
Lepaskan: 2016-05-16 16:34:52
asal
1281 orang telah melayarinya

Dalam JavaScript, var digunakan untuk mengisytiharkan pembolehubah, tetapi sintaks ini tidak diperlukan sepenuhnya. Dalam banyak kes, kita boleh menggunakan pembolehubah secara langsung tanpa mengisytiharkannya dengan var.

Salin kod Kod adalah seperti berikut:

var x = "XX"; y="xxx";

Dan seterusnya. Terdapat masalah sebagai contoh, dalam baris tertentu kod, saya ingin menggunakan pembolehubah yang diisytiharkan Akibatnya, disebabkan oleh kesilapan menaip atau ejaan, pembolehubah itu ditulis sebagai y. perisytiharan tersirat" pembolehubah. y, dalam proses pengaturcaraan sebenar, ralat jenis ini kadangkala sukar dicari.
Apabila anda membuat pengisytiharan "tersirat" ini dalam konteks semasa, enjin JavaScript akan melihat dahulu dalam konteks semasa untuk melihat sama ada pembolehubah ini telah diisytiharkan sebelum ini, kemudian pergi ke konteks sebelumnya untuk mencarinya tidak dijumpai, , pembolehubah ini akhirnya akan diisytiharkan pada tetingkap!
Contohnya:
Kod adalah seperti berikut:

window. y = "hello"; 
function func(){ 
y = "OH, NO!!!"; 
} 
func(); 
alert(window.y); //#=> display "OH, NO!!!" 
Salin selepas log masuk
Apabila mana-mana lapisan dalam konteks mempunyai pembolehubah yang ditakrifkan "tersirat", pembolehubah dalam lapisan itu akan diubah suai tanpa menghasilkan pembolehubah baharu pada tetingkap. (Pepijat jenis ini juga agak menjengkelkan, terutamanya apabila merangkum kod yang lebih kompleks)

Contohnya:

Kod adalah seperti berikut:

var x = "window.x"; 
function a() { 
var x = "a's x"; 
var b = function() { 
var c = function() { 
//no var! 
x = "c's x:"; 
}; 
alert("before c run,the b.x:" + x); 
c(); 
alert("after c run, the b.x:" + x); 
}; 
alert("a.x is:" + x); 
b(); 
alert("after b function runed, the a.x is:" + x); 
}; 
alert("before a run, window.x:" + x); 
a(); 
alert("after a run, window.x:" + x); 
Salin selepas log masuk
Terdapat lapisan berikut: tetingkap, func a, func b, func c sentiasa berhierarki bersarang. tetingkap->a->b->c

Dalam kedua-dua tetingkap dan a, pembolehubah x ditakrifkan, tetapi dalam b pembolehubah tidak ditakrifkan Dalam c, x diisytiharkan 'secara tersirat', dan x akhirnya mengubah nilai pembolehubah.
Ingat, dalam JavaScript, apabila mengisytiharkan pembolehubah, ia mesti didahului dengan var.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan