Rumah > hujung hadapan web > tutorial js > Mengapakah Menggunakan Pembolehubah Global Bernama 'nama' dalam JavaScript Menyebabkan Gelagat Tidak Dijangka?

Mengapakah Menggunakan Pembolehubah Global Bernama 'nama' dalam JavaScript Menyebabkan Gelagat Tidak Dijangka?

DDD
Lepaskan: 2024-12-26 19:21:10
asal
196 orang telah melayarinya

Why Does Using a Global Variable Named

Kes Penasaran "nama" dalam Objek JavaScript

Apabila bekerja dengan objek JavaScript, seseorang mungkin menghadapi tingkah laku yang tidak dijangka apabila menggunakan global pembolehubah bernama "nama." Pembolehubah ini mempunyai kepentingan unik dalam konteks yang berbeza.

Pertimbangkan coretan kod berikut:

var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
alert(name); // Weird value
Salin selepas log masuk

Dalam Chrome, alert(name.FirstName) mengembalikan tidak ditentukan, sementara ia berfungsi seperti yang diharapkan dalam IE dan Firefox. Selain itu, alert(name) menghasilkan nilai pelik, menimbulkan persoalan tentang kelakuannya.

Punca isu ini terletak pada peranan khas sifat "nama" dalam skop global JavaScript. Sifat window.name bertujuan untuk menjadi rentetan, mewakili nama tetingkap atau bingkai semasa. Apabila mencipta pembolehubah global bernama "nama", ia secara tersirat menetapkan window.name kepada rentetan, pada asasnya menimpa nilai khas.

Seterusnya, apabila cuba mengakses nama.FirstName, ia cuba mendapatkan semula sifat daripada primitif (rentetan) dan bukannya objek, mengakibatkan tidak ditentukan. Tingkah laku ini khusus untuk Chrome, yang menguatkuasakan tujuan window.name yang dimaksudkan dengan menghantar pembolehubah "nama" global kepada rentetan.

Untuk mengelakkan isu ini, elakkan daripada menggunakan "nama" sebagai pembolehubah global, kerana ia boleh membawa kepada hasil yang tidak dijangka. Dengan mengelakkan pembolehubah ini, anda boleh memastikan bahawa kod anda berkelakuan secara konsisten merentas penyemak imbas yang berbeza.

Atas ialah kandungan terperinci Mengapakah Menggunakan Pembolehubah Global Bernama 'nama' dalam JavaScript Menyebabkan Gelagat Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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