javascript 数据类型判断
2015-11-29 16:22
603 查看
1. typeof
typeof返回值为字符串,有六种类型
number,string,boolean,function,undefined,object,
typeof通常用来区分undefined和function类型,无法分辨复杂类型,例如array类型,和plain object类型
用 typeof(reValue) === "undefined" 来区分undefined,不用 reValue === undefined 来区分undefined,是因为reValue未声明时,浏览器直接报错
用typeof(reValue) === "function" 来检测function
2. instanceof
instanceof用来判断对象实例与类型的关系,返回值为bool类型,不能跨iframe。
3. constructor
constructor检测是使用对象的constructor属性,其值为该对象类型的构造函数的引用。例如,num.constructor的值为function Number(){native code}。此方法可以用来判断Array类型,例如 obj.constructor === Array 来判断其类型是否为Array。
constructor方法有一些缺点,一是constructor属性可以被修改,二是constructor的判断不能穿越iframe。
4. Object.prototype.toString.call
此方法调用具体对象,会返回字符串,共11种类型,如下
'[object Number]' '[object String]' '[object Boolean]' '[object Array]' '[object Object]'
'[object Function]' '[object Undefined]' '[object Null]' '[object Date]' '[object RegExp]' '[object Error]'
此方法是用来检测类型的终极方法,jquery的type()方法就是使用此方法来判断的,具体使用类型判断时候,可以解决$.type的实现。
总结: 具体使用时,可用typeof检测undefined和function,其他类型的检测使用toSting.call或者第三方封装的type方法。
参考:http://www.2cto.com/kf/201507/414817.html
typeof返回值为字符串,有六种类型
number,string,boolean,function,undefined,object,
typeof通常用来区分undefined和function类型,无法分辨复杂类型,例如array类型,和plain object类型
用 typeof(reValue) === "undefined" 来区分undefined,不用 reValue === undefined 来区分undefined,是因为reValue未声明时,浏览器直接报错
用typeof(reValue) === "function" 来检测function
2. instanceof
instanceof用来判断对象实例与类型的关系,返回值为bool类型,不能跨iframe。
3. constructor
constructor检测是使用对象的constructor属性,其值为该对象类型的构造函数的引用。例如,num.constructor的值为function Number(){native code}。此方法可以用来判断Array类型,例如 obj.constructor === Array 来判断其类型是否为Array。
constructor方法有一些缺点,一是constructor属性可以被修改,二是constructor的判断不能穿越iframe。
4. Object.prototype.toString.call
此方法调用具体对象,会返回字符串,共11种类型,如下
'[object Number]' '[object String]' '[object Boolean]' '[object Array]' '[object Object]'
'[object Function]' '[object Undefined]' '[object Null]' '[object Date]' '[object RegExp]' '[object Error]'
此方法是用来检测类型的终极方法,jquery的type()方法就是使用此方法来判断的,具体使用类型判断时候,可以解决$.type的实现。
总结: 具体使用时,可用typeof检测undefined和function,其他类型的检测使用toSting.call或者第三方封装的type方法。
参考:http://www.2cto.com/kf/201507/414817.html
相关文章推荐
- javascript省市区三级联动下拉框菜单实例演示
- 轻松学习JavaScript六:JavaScript的表达式与运算符
- json数据解析总结
- MyEclipse设置默认JSP编辑器,直接显示代码
- javascript_DOM 编程艺术完结篇
- js 中变量是可以保存数据,也可以保存地址
- JavaScript--字符串与JSON对象相互转换
- JavaScript模块化编程 - CommonJS, AMD ,CMD和 RequireJS之间的关系
- 整理Javascript流程控制语句学习笔记
- Javascript模块化编程(三):require.js的用法
- Javascript模块化编程(二):AMD规范
- Javascript模块化编程(一):模块的写法
- Javascript模板引擎:Hogan
- 基于javascript代码实现通过点击图片显示原图片
- 整理Javascript数组学习笔记
- js鼠标滚动图片变大小
- 网页脚本输入这么简单
- js小时钟
- jsp常用内置对象
- javascript生成二维码