Typeof adalah operator, dan hasilnya kembali ke operan adalah string, dengan 6 jenis (hanya untuk ES, bukan objek lingkungan host).
1.'undefined '
2.'Boolean '
3.'string '
4.'number '
5.'Object '
6. 'function'
Karena itu adalah operator itu sendiri dan bukan fungsi, tidak perlu menambahkan kurung saat menggunakannya.
Salinan kode adalah sebagai berikut:
if (typeof (obj) === 'tidak terdefinisi') {
// ...
}
Tipeof digunakan untuk menilai jenis, dan memiliki beberapa jebakan
1. Mengembalikan nol adalah 'objek', tetapi Anda tidak dapat benar -benar menggunakannya sebagai objek.
Salinan kode adalah sebagai berikut:
var obj = null
if (typeof obj === 'objek') {
OBJ.A () // Kesalahan dilaporkan di sini
}
2. Mengembalikan NAN adalah 'nomor', tetapi Anda tidak dapat menggunakannya untuk melakukan operasi aritmatika.
Salinan kode adalah sebagai berikut:
var obj = {}
var num = parseInt (obj.A)
if (typeof num === 'number') {
num = num + 10 // num masih nan setelah eksekusi
}
3. Ia tidak dapat membedakan antara objek, array, dan operasi reguler, dan mengembalikan 'objek' untuk semua operasi.
Salinan kode adalah sebagai berikut:
var obj = {}
var arr = []
var reg = /pop /g
Console.log (tipe Obj) // 'Objek'
Console.log (typeof arr) // 'objek'
Console.log (typeof reg) // 'objek'
4. Versi sebelum safar5 dan chrome7 return 'function' ke objek biasa.
Akhirnya, penjelasan dalam spesifikasi diposting