Rumah  >  Artikel  >  hujung hadapan web  >  Perbincangan ringkas tentang perbezaan antara mentakrifkan pembolehubah dalam JavaScript dengan atau tanpa kemahiran var declaration_javascript

Perbincangan ringkas tentang perbezaan antara mentakrifkan pembolehubah dalam JavaScript dengan atau tanpa kemahiran var declaration_javascript

WBOY
WBOYasal
2016-05-16 16:39:121032semak imbas

Beberapa masa lalu, saya menjawab soalan tentang perbezaan antara menggunakan kata kunci var semasa mentakrifkan pembolehubah atau tidak.

1. Dalam skop fungsi, pembolehubah yang ditakrifkan dengan var ialah pembolehubah tempatan dan pembolehubah yang ditakrifkan tanpa var menjadi pembolehubah global.
Gunakan definisi var:

var a = 'hello World';
function bb(){
 var a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello world'

Jangan gunakan definisi var:

var a = 'hello World';
function bb(){
 a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello Bill'

2. Dalam skop global, pembolehubah yang ditakrifkan menggunakan var tidak boleh dipadamkan, dan pembolehubah yang ditakrifkan tanpa var boleh dipadamkan Ini bermakna pembolehubah global tersirat bukanlah pembolehubah sebenar, tetapi atribut objek global boleh dipadam melalui pemadaman, tetapi pembolehubah tidak boleh.

3. Menggunakan var untuk mentakrifkan pembolehubah juga akan mempromosikan perisytiharan pembolehubah, iaitu,
Gunakan definisi var:

function hh(){
 console.log(a);
 var a = 'hello world';
}
hh()      //undefined

Jangan gunakan definisi var:

function hh(){
 console.log(a);
 a = 'hello world';
}
hh()      //'a is not defined'

Ini ialah pengisytiharan pembolehubah yang ditakrifkan menggunakan var terlebih dahulu.

4. Dalam mod 'guna ketat' ES5, jika pembolehubah tidak ditakrifkan menggunakan var, ralat akan dilaporkan.

Kenyataan:
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