typeof [1, 2, 4] === 'object';
typeof new Date() === 'object';
typeof null === 'object';
由於typeof數組、null和用new操作符生成的對象,都是返回object
而instanceof,因為在js中,所有對象都是object,故也無法判斷數據類型
但Object.prototype.toString對任何變量會永遠返回這樣一個字符串"[object class]",而這個class就是JavaScript內嵌對象的構造函數的名字。至於用戶自定義的變量,則class等於object。
因此通過Object.prototype.toString.apply(obj)可以准確的獲取變量數據類型。通過Object.prototype.toString可以獲得的數據類型包括:Date, Object, String, Number, Boolean, Regexp, Function, undefined, null, Math等。
參考文獻地址:http://blog.csdn.net/woxueliuyun/article/details/8488789