這篇文章 判斷JS數(shù)據(jù)類型的四種方法 寫的非常好照卦。
個(gè)人總結(jié):
最好的方法是使用 Object.prototype.toString.call(參數(shù)) 這種方式
為啥不能用像 new Date().toString()?
好多對象都改寫了toString方法姑廉,每個(gè)的實(shí)現(xiàn)又不一樣,這樣調(diào)用固额,還沒到Object.prototype就截止了扳躬,返回的結(jié)果就依據(jù)每種實(shí)現(xiàn)的不同千奇百怪嘍。
例子:
Object.prototype.toString.call('') ; // [object String]
Object.prototype.toString.call(1) ; // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]
Object.prototype.toString.call(document) ; // [object HTMLDocument]
Object.prototype.toString.call(window) ; //[object global] window是全局對象global的引用
怎么判斷扫尖,比如:
Object.prototype.toString.call(null) === '[object Null]'; //true