Tipeof Mengembalikan Objek
Semua tipe data dalam JavaScript adalah objek yang ketat, tetapi dalam penggunaan aktual kami masih memiliki tipe yang berbeda. Jika Anda ingin menentukan apakah suatu variabel adalah array atau objek, itu tidak dapat ditangani dengan tipeof, karena semuanya mengembalikan objek
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
document.write ('o typeof is' + typeof o);
document.write ('<br />');
document.write ('a typeof is' + typeOf a);
melaksanakan:
Salinan kode adalah sebagai berikut:
o Tipeof adalah objek
Tipeof adalah objek
Karena itu, kita hanya dapat melepaskan metode ini. Kita harus menilai bahwa ada dua metode untuk array atau objek.
Pertama, gunakan tipeof untuk menambahkan atribut panjang
Array memiliki atribut panjang, objek tidak, dan tipe array dan objek keduanya objek pengembalian, sehingga kita dapat menilai dengan cara ini
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
var getDataType = function (o) {
if (typeof o == 'objek') {
if (typeof o.length == 'number') {
mengembalikan 'array';
}kalau tidak{
mengembalikan 'objek';
}
}kalau tidak{
return 'param bukan tipe objek';
}
};
peringatan (getDataType (o)); // objek
peringatan (getDataType (a)); // array
peringatan (getDataType (1)); // Param bukan jenis objek
peringatan (getDataType (true)); // Param bukan jenis objek
waspada (getDataType ('a')); // Param bukan jenis objek
Kedua, gunakan instanceof
Gunakan contoh untuk menentukan apakah suatu variabel adalah array, seperti:
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
peringatan (contoh array); // BENAR
waspada (o contoh array); // PALSU
Anda juga dapat menentukan apakah itu milik suatu objek
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
waspada (objek instance dari); // BENAR
waspada (o instance dari objek); // BENAR
Tetapi array juga milik objek, sehingga kedua hal di atas benar. Oleh karena itu, ketika kita menggunakan instanceof untuk menentukan apakah tipe data adalah objek atau array, pertama -tama kita harus menilai array, dan akhirnya menilai objek
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
var getDataType = function (o) {
if (o instance array) {
mengembalikan 'array'
} lain jika (o instance dari objek) {
mengembalikan 'objek';
}kalau tidak{
return 'param bukan tipe objek';
}
};
peringatan (getDataType (o)); // objek
peringatan (getDataType (a)); // array
peringatan (getDataType (1)); // Param bukan jenis objek
peringatan (getDataType (true)); // Param bukan jenis objek
waspada (getDataType ('a')); // Param bukan jenis objek
Jika Anda tidak memprioritaskan array, misalnya:
Salinan kode adalah sebagai berikut:
var o = {'name': 'lee'};
var a = ['reg', 'blue'];
var getDataType = function (o) {
if (o instance dari objek) {
mengembalikan 'objek'
} lain jika (o instance dari array) {
mengembalikan 'array';
}kalau tidak{
return 'param bukan tipe objek';
}
};
peringatan (getDataType (o)); // objek
peringatan (getDataType (a)); // objek
peringatan (getDataType (1)); // Param bukan jenis objek
peringatan (getDataType (true)); // Param bukan jenis objek
waspada (getDataType ('a')); // Param bukan jenis objek
Maka array juga akan dinilai sebagai objek.