JavaScript的类型检测
2017-05-09 22:09
267 查看
typeof
instanceof
Object.prototype.toString
constructor
duck type
typeof
返回字符串,适合函数对象和基本类型的判断。遇到null失效(因为会返回Object),所以判断null时使用===
instanceof
基于原型链判断的操作符,常用于判断对象类型,适合自定义对象,也可以检测原生对象。
obj instanceof Object
若obj是基本类型,则会返回false
Object是函数对象或函数构造器,若不是,则会抛出typeError异常
不同window或iframe间的对象类型检测不能使用instanceof,因为对象是判断引用
Object.prototype.toString
注意:IE6/7/8中,
instanceof
Object.prototype.toString
constructor
duck type
typeof
返回字符串,适合函数对象和基本类型的判断。遇到null失效(因为会返回Object),所以判断null时使用===
typeof 100 //"number" typeof true //"boolean" typeof function //"function" typeof(undefined) //"undefined" typeof new Object() //"object" typeof [1,2] //"object" typeof NaN //"number" typeof null //"object" //为什么null是“object”?↑历史原因
instanceof
基于原型链判断的操作符,常用于判断对象类型,适合自定义对象,也可以检测原生对象。
obj instanceof Object
若obj是基本类型,则会返回false
Object是函数对象或函数构造器,若不是,则会抛出typeError异常
[1,2] instanceof Array === true new Object() instanceof Array === false
不同window或iframe间的对象类型检测不能使用instanceof,因为对象是判断引用
Object.prototype.toString
Object.prototype.toString.apply([]); === "[object Array]"; Object.prototype.toString.apply(function(){}); === "object Function]"; Object.prototype.toString.apply(null); === "object Null]"; Object.prototype.toString.apply(undefined); === "object Undefined]";
注意:IE6/7/8中,
Object.prototype.toString.apply(null或undefined); === "object Object]";
相关文章推荐
- javascript 检测浏览器类型、操作系统平台的代码
- [转]JavaScript类型检测小结
- javascript类型检测(转载)
- Javascript数组类型检测:编写更强壮的isArray函数
- 浅谈javascript的数据类型检测
- javascript检测图片大小、类型、长宽
- javascript 浏览器类型检测
- javascript中检测变量的类型的代码
- JavaScript数据类型检测
- 浅谈JavaScript数据类型检测
- JavaScript类型检测小结(上)
- Javascript isArray 数组类型检测函数
- Javascript isArray 数组类型检测函数
- javascript中检测变量的类型的代码
- JavaScript类型检测小结(转)
- JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661
- javascript 检测浏览器类型和版本的代码
- javascript检测浏览器类型和版本号(兼容各浏览器)
- javascript 学习笔记(六)浏览器类型及版本信息检测代码
- JavaScript检测类型