Kata -kata sebelumnya
Dalam bahasa pemrograman umum, hanya nol berarti kosong, tetapi perancang Javascript Brendan Eich merancang yang tidak terdefinisi, yang tidak diragukan lagi meningkatkan kompleksitas program, tetapi ada alasan tertentu untuk melakukannya. Artikel ini akan memperkenalkan tidak terdefinisi dan nol di JavaScript secara rinci
Alasan Historis Ketika JavaScript lahir pada tahun 1995, seperti Java, hanya NULL yang ditetapkan sebagai nilai yang menunjukkan "tidak ada". Menurut tradisi bahasa C, NULL dirancang untuk secara otomatis beralih ke 0
Namun, perancang Javascript Brendan Eich berpikir bahwa ini tidak cukup, karena dua alasan. Pertama, NULL diperlakukan sebagai objek seperti di Java. Namun, nilai JavaScript dibagi menjadi dua kategori: tipe primitif dan tipe objek. Brendan Eich berpikir bahwa nilai yang berarti "tidak ada" yang terbaik bukan objek. Kedua, versi awal JavaScript tidak termasuk mekanisme penanganan kesalahan. Ketika ketidakcocokan tipe data terjadi, sering secara otomatis mengonversi tipe atau gagal secara diam -diam. Brendan Eich berpikir bahwa jika nol secara otomatis beralih ke 0, sulit untuk menemukan kesalahan
Oleh karena itu, Brendan Eich merancang lain yang tidak terdefinisi. Ini membedakannya seperti ini: NULL adalah objek yang mewakili "tidak ada", yaitu 0 ketika dikonversi ke nilai numerik; Tidak terdefinisi adalah nilai asli yang mewakili "tidak ada", yaitu nan saat dikonversi ke nilai numerik
Namun, saat ini nol dan tidak terdefinisi pada dasarnya identik, keduanya tipe primitif, dan hanya ada beberapa perbedaan kecil.
Tipe yang tidak terdefinisi hanya memiliki satu nilai, yang tidak terdefinisi. Ketika variabel yang dinyatakan tidak diinisialisasi, nilai default variabel tidak terdefinisi. Jadi umumnya, tidak terdefinisi berarti bahwa variabel tidak diinisialisasi
var test; // undefinedconsole.log (test == tidak ditentukan); // test truevar = tidak terdefinisi; // tidak ditentukan
Untuk variabel yang belum dinyatakan, hanya satu operasi yang dapat dilakukan, menggunakan operator tipe untuk mendeteksi tipe data mereka, tetapi akan menyebabkan kesalahan dalam mode ketat
typeof (tes); // tidak ditentukan
【Penampilan Adegan】
【1】 Variabel yang tidak dihargai dinyatakan
【2】 Dapatkan atribut yang tidak ada di objek
【3】 Hasil eksekusi fungsi tanpa nilai pengembalian
【4】 Parameter fungsi tidak diteruskan
【5】 batal (ekspresi)
var i; console.log (i); // undefinedvar o = {}; console.log (op); // fungsi tidak terdefinisi f () {}; console.log (f ()); // tidak terdefinisi fungsi f (x) {return x;} console.log (f ();//tidak terdefinisi f (x) {return x;} console.log (f ();//tidak terdefinisi F (x) {return x;} console.log (f ();//tidak terdefinisi F (x) {return X;【Ketik konversi】
Boolean (tidak terdefinisi): FalsEnumber (tidak terdefinisi): nanstring (tidak terdefinisi): 'tidak terdefinisi'
batal
Hanya ada satu nilai untuk tipe nol, yang nol. NULL adalah kata kunci dalam bahasa JavaScript. Ini mewakili nilai khusus dan sering digunakan untuk menggambarkan "nilai nol".
Secara logis, nilai nol mewakili penunjuk objek kosong
[Catatan] NULL adalah penunjuk objek kosong, sedangkan [] adalah array kosong, {} adalah objek kosong, ketiganya berbeda
console.log (typeof null); // 'objek'
Meskipun nol dan tidak terdefinisi berbeda, keduanya mewakili "nilai kosong", nol mewakili "nilai nol", dan tidak terdefinisi mewakili "tidak terdefinisi". Keduanya sering dipertukarkan. Hakim Operator Kesetaraan == Pikirkan bahwa keduanya sama
console.log (null == tidak terdefinisi); // true
Bahkan, karena tidak terdefinisi dan nol bukan tipe konstruktor, mereka tidak memiliki sifat dan metode. Menggunakan . dan [] untuk mengakses anggota atau metode dari kedua nilai akan menghasilkan kesalahan tipe.
【Ketik konversi】
Boolean (null): falsenumber (null): 0string (null): 'null'
Artikel di atas tentang sistem tipe JavaScript - tidak terdefinisi dan nol adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.