Saya telah menggunakan instance dan tipe dari sesekali sebelumnya, terutama tipeof, dan saya telah menggunakannya lebih banyak. Hari ini, saya telah mempelajari kode sumber ext dan menggunakan contoh di banyak tempat. Tiba -tiba saya merasa bahwa mereka agak mirip tetapi mereka harus berbeda. Saya membaca beberapa artikel secara online dan memiliki pemahaman tertentu tentang hubungan di antara mereka.
Instanceof dan TypeOF dapat digunakan untuk menentukan apakah suatu variabel kosong atau jenis variabel apa.
Tipeof digunakan untuk mendapatkan jenis variabel. Tipeof umumnya hanya dapat mengembalikan hasil berikut: Nomor, boolean, string, fungsi, objek, tidak ditentukan. Kita dapat menggunakan tipeof untuk mendapatkan apakah ada variabel, seperti if (typeof a! = "Tidak terdefinisi") {}, alih -alih menggunakan if (a) karena jika a tidak ada (tidak dinyatakan), kesalahan akan terjadi. Untuk objek khusus seperti Array, Null, dll., Anda akan mengembalikan objek. Ini adalah batasan tipe.
Jika kita ingin mendapatkan apakah suatu objek adalah array, atau menentukan apakah suatu variabel adalah instance suatu objek, kita perlu memilih untuk menggunakan instanceof. Instanceof digunakan untuk menentukan apakah suatu variabel adalah instance suatu objek. Misalnya, var a = array baru (); peringatan (contoh array); Akan mengembalikan true, dan waspada (objek instance dari) juga akan mengembalikan true; Ini karena array adalah subclass objek. Misalnya: tes fungsi () {}; var a = test baru (); peringatan (tes instanceof) akan mengembalikan true.
Ketika datang ke contoh, kita perlu memasukkan satu masalah lagi, yaitu argumen fungsi. Kita semua mungkin berpikir bahwa argumen adalah array, tetapi jika kita menggunakan instance untuk menguji, kita akan menemukan bahwa argumen bukan objek array, meskipun mereka terlihat sangat mirip.