Rumah > Artikel > hujung hadapan web > Perbincangan ringkas tentang perbezaan antara mentakrifkan pembolehubah dalam JavaScript dengan atau tanpa kemahiran var declaration_javascript
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.