-
typeof: 主要用于判断基本数据类型
typeof Symbol(); // “symbol”
最初的js版本中,使用的是32位系统,为了性能考虑使用低位存储了变量的类型信息,
000
开头表示对象类型,而null
表示为全零,因此会被错判为object
。为了不影响使用,这个用法一直被沿用到现在
使用typeof进行对象类型判断时,除了函数返回"function"
外,其他的对象均返回"object"
;
-
instanceof:用于引用数据类型的判断。所有引用数据类型的值都是Object的实例。目的是判断一个对象在其原型链上是否存在构造函数的prototype属性。
用法: variable instanceof constructor
Array.isArray()可以用于判断数组类型,支持的浏览器有IE9+、FireFox 4+、Safari 5+、Chrome;
//Polyfill if (!Array.isArray) { Array.isArray = function(arg) { return Array.prototype.toString.call(arg) === '[object Array]'; } }
-
Object.prototype.toString.call()