JS 判断数据类型的方法
来源:互联网 发布:windows 菜单栏 编辑:程序博客网 时间:2024/05/29 07:08
首先要知道 js 的数据类型有哪些
基本类型:Number、Boolean、String、Undefined、Null 、Symbol(es6 新增)
引用类型:Object
判断方法:
- typeof
console.log(typeof(1)); //numberconsole.log(typeof(true)); //booleanconsole.log(typeof('1')); //stringconsole.log(typeof(a)); //undefinedconsole.log(typeof(function(){alert(111)})); //functionconsole.log(typeof(Symbol())); //symbolconsole.log(typeof(null)); //objectconsole.log(typeof([])); //objectconsole.log(typeof(/sa/)); //objectconsole.log(typeof(new Date())); //object
小结: typeof 返回值包括 Number、Boolean、String、Undefined、Symbol(es6 新增)、Object
- instanceof
console.log([] instanceof Array);console.log([] instanceof Object);console.log(/as/ instanceof RegExp);console.log({} instanceof Object);console.log(new Date() instanceof Date);function Person(){};console.log(new Person() instanceof Object);
小结:instanceof 只能确定两个对象是否属于原型关系,但是不能具体确定类型,比如 [] 既是 Array 的实例,也是 Object 的实例
- Object.prototype.toString.call
console.log(Object.prototype.toString.call('')) ; // [object String]console.log(Object.prototype.toString.call(1)) ; // [object Number]console.log(Object.prototype.toString.call(true)) ; // [object Boolean]console.log(Object.prototype.toString.call(Symbol())); //[object Symbol]console.log(Object.prototype.toString.call(undefined)) ; // [object Undefined]console.log(Object.prototype.toString.call(null)) ; // [object Null]console.log(Object.prototype.toString.call(new Function())) ; // [object Function]console.log(Object.prototype.toString.call(new Date())) ; // [object Date]console.log(Object.prototype.toString.call([])) ; // [object Array]console.log(Object.prototype.toString.call(new RegExp())) ; // [object RegExp]console.log(Object.prototype.toString.call(new Error())) ; // [object Error]console.log(Object.prototype.toString.call(document)) ; // [object HTMLDocument]console.log(Object.prototype.toString.call(window)) ; //[object global] window是全局对象 global 的引用
小结:需要注意的是,必须通过 call 或 apply 来调用,而不能直接调用 toString 。
从原型链的角度讲,所有对象的原型链最终都指向了 Object, 按照JS变量查找规则,其他对象应该也可以直接访问到 Object 的 toString方法,而事实上,大部分的对象都实现了自身的 toString 方法,这样就可能会导致 Object 的 toString 被终止查找,因此要用 call/apply 来强制调用Object 的 toString 方法。
参考文章:http://www.cnblogs.com/onepixel/p/5126046.html
阅读全文
0 0
- JS 判断数据类型的方法
- JS判断数据类型检查的方法
- js中判断数据类型的方法总结
- js 判断各种数据类型的简单方法
- JS判断数据类型的三种方法
- 判断JS数据类型的四种方法
- 判断JS数据类型的四种方法
- 判断JS数据类型的四种方法
- js 判断数据类型的几种方法
- js判断数据类型的几种方法
- js数据类型的判断
- JS小技巧:判断数据类型的一种方法
- js中判断数据类型对的几种方法
- JS中判断数据类型的几种方法
- 判断js中的数据类型的几种方法
- js数据类型判断 toString方法的底层分析
- JS中数据类型的判断
- js中数据类型的判断
- 循环创建按钮并且间距一至
- 16_矩阵剪刀石头布
- Centos7 未找到命令.. 解决方案
- maven和gradle打war包遇到的问题及总结
- java基础之--抽象类
- JS 判断数据类型的方法
- 不定长数组vector,STL的使用
- 在Hibernate中Transformers的所有转换都是需要实现ResultTransformer接口。
- leetcode 130. Surrounded Regions
- 支付网关的设计
- 从尾到头打印链表
- TLS重新协商显示扩展,RFC5746
- linux系统磁盘文件夹占用大小和清理
- 14_扫雷游戏地雷数计算