Rumah  >  Artikel  >  hujung hadapan web  >  Adakah anda benar-benar memahami perbezaan antara menambah var dan tidak menambah var dalam kemahiran javascript_javascript

Adakah anda benar-benar memahami perbezaan antara menambah var dan tidak menambah var dalam kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 15:21:271831semak imbas

Javascript ialah produk yang mengikut standard ECMAScript, dan semestinya ia mesti mengikut standard ECMAScript.

Mari kita lihat dulu definisi dan penggunaan kata kunci var

Pernyataan

var digunakan untuk mengisytiharkan pembolehubah.

Penciptaan pembolehubah JavaScript juga dipanggil "mengisytiharkan" pembolehubah:

Salin kod Kod adalah seperti berikut:

var carName;

Selepas pembolehubah diisytiharkan, pembolehubah itu kosong (tidak mempunyai nilai).

Salin pembolehubah, operasi adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

Nama kereta = "Volvo";

Apabila mengisytiharkan pembolehubah, anda juga boleh memberikan nilai kepada pembolehubah:

Salin kod Kod adalah seperti berikut:

var carName = "Volvo";

Tatabahasa

Salin kod Kod adalah seperti berikut:

var varname = nilai;

Nilai parameter

Parameter Penerangan
varname Diperlukan. Nyatakan nama pembolehubah.

Nama boleh ubah boleh mengandungi huruf, nombor, garis bawah dan tanda dolar.

  • Nama boleh ubah mesti bermula dengan huruf
  • Nama pembolehubah juga boleh bermula dengan $ dan _ (tetapi biasanya tidak digunakan dengan cara ini)
  • Nama pembolehubah sensitif huruf besar-besaran (y dan Y ialah pembolehubah berbeza)
  • Perkataan tersimpan (seperti kata kunci JavaScript) tidak boleh digunakan sebagai nama pembolehubah
nilai Pilihan. Nyatakan nilai pembolehubah.

Nota: Jika pengisytiharan pembolehubah tidak menyatakan nilai, nilai lalainya ialah tidak ditentukan

Semua orang telah membaca banyak artikel dan mereka semua berkata untuk mengelakkan pengisytiharan tersirat pembolehubah global, yang bermaksud bahawa 'var' mesti ditambah sebelum mengisytiharkan pembolehubah Jadi apakah perbezaan antara menambah 'var' dan tidak menambah 'var'. ?

Mari lihat sekeping kod dahulu

var a = 'aa';
alert(a); //弹出 'aa'
alert(window.a)//弹出'aa' 

Difahamkan, apabila anda mengisytiharkan pembolehubah global, anda sebenarnya menambah atribut pada objek 'tetingkap' Sekeping kod berikut mempunyai kesan yang sama

a = 'aa';
alert(a); //弹出 'aa'
alert(window.a)//弹出'aa' 

Kemudian "var a = 'aa' " dan "a = 'aa' " adalah kedua-duanya pembolehubah global, apakah perbezaannya? Lihat dua keping kod berikut

var a = 'aa';
delete window.a; // false 
a = 'aa';
delete window.a; // true 

Mereka semua menambah atribut pada objek 'tetingkap', satu boleh dipadamkan dan satu lagi tidak boleh dipadamkan. Tetapi menambahkan 'var' menjadikannya berkaitan skop Tanpa 'var', anda sentiasa menambah atribut secara dinamik pada objek 'window' Kod berikut membuktikannya

var test = function(){
 a = 'aa';
}
test();
alert(window.a);//弹出'aa' 

Memandangkan objek tetingkap ialah objek global, ia boleh ditinggalkan secara lalai Perenggan berikut mempunyai kesan yang sama

var test = function(){
 a = 'aa';
}
test();
alert(a);//弹出'aa' 

Bercakap mengenai perkara ini, pelajar yang berfikir secara serius mesti mempunyai soalan sekarang, mengapa pembolehubah global yang diisytiharkan secara tersirat boleh dipadamkan, tetapi pembolehubah global yang diisytiharkan secara eksplisit tidak boleh dipadamkan?

Alasannya ialah "padam tidak boleh memadamkan sifat yang kebolehkonfigurasiannya adalah palsu".

delete Object.prototype; // false 不可删除,该属性是不可配置的
var a = 'aa';
delete window.a;//false 不可删除,该属性是不可配置的
function test(){};
delete window.test;//false 不可删除,该属性是不可配置的 

Kemudian tidakkah anda faham bahawa pembolehubah global yang diisytiharkan dengan 'var' sebenarnya menambah atribut tidak boleh dikonfigurasikan pada objek 'tetingkap', manakala pembolehubah global yang diisytiharkan tanpa 'var' sebenarnya menambah atribut tidak boleh dikonfigurasikan pada Objek 'window'. Sifat boleh dikonfigurasikan ditambahkan pada objek 'window'.

Perhatikan bahawa di mana sahaja tetingkap digunakan di atas, tetingkap boleh digantikan dengan ini, seperti:

var test = function(){
 a = 'aa';
}
test();
alert(this.a);//弹出'aa' 

Alasannya, sila semak artikel yang saya tulis sebelum ini 'Ini, ini, bincangkan ini dalam javascript lagi, super komprehensif'

Yang berikut mengeluarkan kata kunci var dalam javascript dan menerangkannya secara berasingan kepada semua orang.

Kita tahu bahawa apabila mentakrifkan pembolehubah, kita perlu menggunakan kata kunci Var Apabila menggunakan kata kunci Var, kita perlu memberi perhatian kepada penggunaannya:
Contoh berikut menggambarkan sepenuhnya bahawa Var mempunyai hasil pelaksanaan yang berbeza apabila ia digunakan atau tidak digunakan, dan apabila pembolehubah global dan pembolehubah tempatan ditakrifkan.

var var01 = 1;
function funtest() {
 document.write(var01);
 var var01 = 0;
} 

Hasilnya ialah: tidak ditentukan

var var01 = 1;
function funtest() {
 document.write(var01);
 var01 = 0;
} 

Hasilnya ialah: 1

 var01 = 1;
function funtest() {
 document.write(var01);
 var var01 = 0;
}

Hasilnya ialah: tidak ditentukan

var01 = 1;
function funtest() {
 document.write(var01);
 var01 = 0;
}

Hasilnya ialah: 1

Lihat sejauh mana anda tahu tentang var dalam JavaScript di sini. Saya percaya semua orang akan mendapat sesuatu daripada pembelajaran melalui artikel ini. Untuk mengetahui lebih lanjut tentang javascript var, sila teruskan memberi perhatian kepada laman web ini, terima kasih!

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