Rumah >hujung hadapan web >tutorial js >Analisis perbezaan antara Null dan Undefined dalam kemahiran JavaScript_javascript

Analisis perbezaan antara Null dan Undefined dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 15:52:111285semak imbas

Terdapat dua jenis primitif dalam JavaScript: Null dan Undefined. Kedua-dua jenis ini sering membuat pembangun JavaScript keliru, bilakah ianya Null dan bilakah ianya Undefined?

Jenis Undefined hanya mempunyai satu nilai, iaitu undefined. Apabila pembolehubah yang diisytiharkan belum dimulakan, nilai lalai pembolehubah tidak ditentukan.

Jenis Null juga hanya mempunyai satu nilai, iaitu null. Null digunakan untuk mewakili objek yang belum wujud Ia sering digunakan untuk menunjukkan bahawa fungsi cuba mengembalikan objek yang tidak wujud.

Salin kod Kod adalah seperti berikut:

var oNilai; alert(oValue == undefined); //output "true"

Kod ini dipaparkan sebagai benar, yang bermaksud bahawa nilai oVlaue tidak ditentukan kerana kami belum memulakannya.

Salin kod Kod adalah seperti berikut:
alert(null == document.getElementById('notExistElement'));

Apabila nod DOM dengan id "notExistElement" tidak wujud pada halaman, kod ini memaparkan "true" kerana kami cuba mendapatkan objek yang tidak wujud.

alert(typeof undefined); //output "undefined"
alert(typeof null); //output "objek"


Barisan pertama kod mudah difahami, jenis undefined ialah Undefined; Sebenarnya, ini adalah kesilapan dalam pelaksanaan awal JavaScript, yang kemudiannya diterima pakai oleh ECMAScript. Hari ini kita boleh menerangkan bahawa null ialah pemegang tempat untuk objek yang tidak wujud, tetapi kita masih perlu memberi perhatian kepada ciri ini apabila sebenarnya pengekodan.


alert(null == undefined); //output "true"


ECMAScript menganggap undefined berasal daripada null, jadi ia mentakrifkannya sebagai sama. Walau bagaimanapun, jika dalam beberapa kes kita mesti membezakan antara kedua-dua nilai ini, apakah yang perlu kita lakukan? Dua kaedah berikut boleh digunakan.


alert(null === undefined); //output "false"
alert(typeof null == typeof undefined); //output "false"


Menggunakan kaedah typeof telah disebutkan sebelum ini Jenis null dan undefined adalah berbeza, jadi "false" adalah output. Dan === mewakili kesaksamaan mutlak, di sini null === undefined output palsu.
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