Setelah penelitian, ada perbedaan besar antara keduanya.
Tes OS: Ubuntu
Test Browser: Chrome
Kasus Uji 1
Console.log (A)
ReferenceError: A tidak didefinisikan
Kasus Uji 2
var a
Console.log (A)
Tidak ada kesalahan yang dilaporkan, tetapi output tidak ditentukan
Kasus Uji 2
var b = {};
Console.log (BA)
Tidak ada kesalahan yang dilaporkan, tetapi output tidak ditentukan
Kasus Uji 3
fungsi c () {
}
var d = c () baru;
Console.log (DA)
Tidak ada kesalahan yang dilaporkan, tetapi tidak terdefinisi
Tentang tipe
Semua objek di atas yang digunakan untuk pengujian dikembalikan dengan TipeOf.
Tentang atau operasi ||
var d = a || 3
Laporkan kesalahan yang tidak ditentukan
var a;
var d = a ||
Hasil: D == 3
var c = 22 ||
C == 22
var c = false ||
C == 33
if (x) {
}
Melaporkan kesalahan
var x
if (x) {
}
Jika tidak dieksekusi
Meringkaskan:
Ada dua jenis yang tidak ditentukan dalam JS, meskipun pengembaliannya adalah string ("tidak ditentukan")
Setelah definisi, tetapi tanpa operasi apa pun atau properti yang tidak terdefinisi dari suatu objek, itu milik tidak terdefinisi yang dapat digunakan untuk operasi dan dapat digunakan sebagai operasi logis.
Jenis variabel kedua benar -benar tidak terdefinisi dan tidak memiliki latar belakang (xa, meskipun x tidak memiliki atribut, tetapi memberikan wajah X), dan tidak dapat digunakan sebagai tipe kesalahan kecuali fungsi tipe dari digunakan.
Operasi dalam JS tidak mengembalikan nilai bool, tetapi mengembalikan nilai yang dihitung oleh JS pada kondisi terakhir di kedua sisi. 2 == 1 A ||
var a;
Saya menemukan kamus ini dan menerjemahkannya
tidak terdefinisi dapat diterjemahkan ke dalam: tidak jelas, yaitu, saya tidak tahu harus berbuat apa
Dan tidak didefinisikan dapat diterjemahkan ke dalam tidak terdefinisi