Rumah >hujung hadapan web >tutorial js >Mengapa Meninggalkan \'var\' dalam JavaScript Membawa kepada Pembolehubah dan Ralat Global yang Tidak Dijangka?

Mengapa Meninggalkan \'var\' dalam JavaScript Membawa kepada Pembolehubah dan Ralat Global yang Tidak Dijangka?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 09:25:29892semak imbas

Why Does Omitting

Bahaya Pengisytiharan Pembolehubah Global

Dalam bidang JavaScript, pembangun telah lama diberi amaran tentang perangkap yang dikenali sebagai "Kengerian Global Tersirat." Ini timbul apabila pembolehubah diisytiharkan tanpa kata kunci "var".

Bertentangan dengan kepercayaan popular, meninggalkan "var" tidak memberikan sebarang faedah prestasi yang ketara. Sebaliknya, ia mencipta pembolehubah global, yang boleh menyebabkan kebocoran pembolehubah yang tidak disengajakan dan potensi konflik dengan skrip lain pada halaman.

Untuk menggambarkan isu ini, pertimbangkan fungsi berikut:

<code class="javascript">function foo() {
    variable1 = 5;
    varaible2 = 6;
    return variable1 + variable2;
}</code>

Disebabkan kesilapan taip dalam pengisytiharan "varaible2," fungsi mengembalikan NaN dan bukannya nilai yang dijangkakan 11. Selain itu, pembolehubah global bernama "varaible2" dicipta secara tidak sengaja, yang boleh diakses dari luar fungsi:

<code class="javascript">console.log(foo());     // NaN
console.log(varaible2); // 6?!?!?!</code>

Tingkah laku yang tidak dijangka ini boleh membawa kepada ralat yang mengelirukan dan sukar untuk nyahpepijat dalam kod anda. Untuk mengelakkan perangkap ini, adalah penting untuk sentiasa menggunakan kata kunci "var" semasa mengisytiharkan pembolehubah, kedua-dua fungsi dalam dan luar.

Atas ialah kandungan terperinci Mengapa Meninggalkan \'var\' dalam JavaScript Membawa kepada Pembolehubah dan Ralat Global yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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