Perbezaan antara null dan undefined ialah: 1. Makna semantik 2. Senario penggunaan 3. Perbandingan dengan nilai lain 5. Hubungan dengan parameter fungsi; semak; 7. Pertimbangan prestasi; 8. Prestasi dalam siri JSON; Pengenalan terperinci: 1. Makna semantik, null biasanya bermaksud mengetahui bahawa pembolehubah ini tidak akan mempunyai sebarang nilai objek yang sah, manakala undefined biasanya bermaksud bahawa pembolehubah belum diberikan nilai, atau objek tidak mempunyai atribut ini 2. Senario penggunaan , dsb.
Sistem pengendalian untuk tutorial ini: sistem Windows 10, komputer DELL G3.
Dalam JavaScript, kedua-dua null dan undefined bermaksud tiada nilai atau tiada objek. Walau bagaimanapun, terdapat beberapa perbezaan penting antara mereka.
null ialah nilai khas yang bermaksud "tiada nilai", manakala undefined bermaksud "pembolehubah tidak ditakrifkan". Iaitu, apabila pembolehubah diisytiharkan tetapi tidak diberikan nilai, nilainya tidak ditentukan.
Berikut adalah beberapa penjelasan terperinci tentang perbezaan antara null dan undefined:
1 Maksud semantik:
#🎜🎜 #null biasanya. kita tahu bahawa pembolehubah ini tidak akan memegang sebarang nilai objek yang sah. Dengan kata lain, kami menjangkakan pembolehubah ini tidak mempunyai nilai. - undefined biasanya bermaksud pembolehubah belum diberikan nilai atau objek tidak mempunyai atribut ini. Ini selalunya merupakan hasil yang tidak dijangka kerana kita mungkin menjangkakan objek mempunyai sifat atau pembolehubah mempunyai nilai.
-
2. Senario penggunaan:
Apabila kita ingin menjelaskan bahawa pembolehubah tidak mempunyai nilai, atau objek itu tidak mempunyai atribut tertentu, biasanya kami Gunakan null. - Kami mungkin menggunakan undefined apabila kami menyemak sama ada pembolehubah diberikan nilai atau sama ada sifat objek wujud.
-
3. Perbandingan dengan nilai lain:
null dan undefined ialah nilai istimewa dalam JavaScript dan tidak boleh dibandingkan dengan mana-mana nilai lain. . Sebagai contoh, null == undefined sebenarnya mengembalikan benar, walaupun secara semantik mereka berbeza. Ini kerana JavaScript menggunakan kaedah perbandingan yang dipanggil "penghantaran jenis", yang mengabaikan perbezaan jenis. Untuk membandingkannya dengan tepat, anda harus menggunakan operator === atau !==, supaya hanya jenis dan nilainya sahaja dibandingkan. -
4 Hubungan dengan pembolehubah global:
Dalam JavaScript, nilai awal pembolehubah global tidak ditentukan. Jika anda mengisytiharkan pembolehubah global tetapi tidak memberikan nilai kepadanya, nilainya tidak ditentukan. Walau bagaimanapun, ini tidak bermakna bahawa pembolehubah global hanya boleh mempunyai nilai yang tidak ditentukan, anda masih boleh menetapkan sebarang nilai lain kepadanya. -
5 Hubungan dengan parameter fungsi:
Apabila tiada parameter dihantar ke fungsi, nilai parameter di dalam fungsi tidak ditentukan. Walaupun anda cuba memberikan nilai kepada parameter ini (contohnya: biarkan a = null;), nilai awalnya masih tidak ditentukan. Parameter ini hanya mempunyai nilai tertentu apabila anda memasukkan nilai tertentu (contohnya: biarkan a = null; a = 'hello';). -
6. Semakan kebolehbatalan:
Dalam sesetengah kes, anda mungkin mahu menyemak sama ada nilai itu kosong (sama ada nilai itu batal atau tidak ditentukan ). Dalam kes ini, anda boleh menggunakan kaedah berikut: -
复制代码javascript`if (value == null) {// value is null or undefined}`
Kaedah ini juga akan menyemak sama ada nilai kosong atau tidak ditentukan. Jika anda hanya ingin menyemak sama ada nilai tidak ditentukan, anda boleh menggunakan kaedah berikut:
复制代码javascript`if (typeof value === 'undefined') {// value is undefined}`
7:
.
- Dalam sesetengah kes, menggunakan null dan bukannya undefined boleh meningkatkan prestasi kod anda. Ini kerana apabila enjin JavaScript menemui rujukan dengan nilai nol, ia biasanya melangkau langkah tambahan untuk mencari rantai objek. Ini mengelakkan beberapa kemungkinan overhed prestasi. Walau bagaimanapun, ini biasanya hanya penting apabila sejumlah besar rujukan objek terlibat, jadi untuk kebanyakan aplikasi ini bukan faktor penting untuk dipertimbangkan.
8 Prestasi dalam siri JSON:
- Apabila menggunakan kaedah JSON.stringify untuk menukar objek JavaScript kepada rentetan JSON, Semua tidak ditentukan. nilai diabaikan dan tidak akan disertakan dalam rentetan JSON yang dihasilkan. Nilai nol akan disertakan. Jika anda ingin memasukkan semua nilai yang tidak ditentukan dalam hasil bersiri, anda boleh menggunakan fungsi bersiri tersuai untuk mengendalikan situasi ini.
9 Hubungan dengan jenis:
- null dan undefined ialah jenis primitif dalam JavaScript, bukan jenis objek . Ini bermakna mereka tidak boleh diwarisi atau dilanjutkan, dan tiada kaedah boleh dipanggil ke atasnya. Namun begitu, beberapa kaedah terbina dalam JavaScript (seperti Object.keys()) boleh mengendalikan jenis nilai primitif ini dengan betul.
Atas ialah kandungan terperinci Apakah perbezaan antara null dan undefined. 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