JavaScript中常用的几种类型检测方法
2024-08-31 08:23:11
javascript中类型检测方法有很多:
- typeof
- instanceof
- Object.prototype.toString
- constructor
- duck type
1、typeof
最常见的就是typeof:
比较特殊的是typeof null返回“object”。
历史原因,规范尝试修改typeof null返回“null”修改完大量网站无法访问,为了兼容,或者说历史原因返回"object"。
2、instanceof
基于原型链操作。obj instanceof Object。
左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回typeError异常。
原理:判断左边的左操作数的对象的原型链上是否有右边这个构造函数的prototype属性。
任何一个构造函数都有一个prototype对象属性,这个对象属性将用作new出来的对象的原型。
bosn instanceof Person的时候发现bosn的原型也就是Student.prototype不等于Person.prototype,所以原型链还会向上查找,bosn的原型的原型等于Person.prototype所以返回true。
instanceof在判断对象是不是数组,Data,正则等时很好用。
instanceof坑:不同window或iframe之间的对象类型检测不能使用instanceof!
3、Object.prototype.toString
需要注意的是IE6/7/8中 Object.prototype.toString.apply(null)返回“[object Object]”。
4、constructor
任何对象都有constructor属性,继承自原型的,constructor会指向构造这个对象的构造器或者构造函数。
constructor可以被改写,所以使用要小心。
总结
参考:https://www.cnblogs.com/starof/p/6368048.html
最新文章
- 理清JavaScript正则表达式--下篇
- 洛谷P1330封锁阳光大学[二分图染色]
- Rails :布局和视图渲染
- CentOS的SSH,Putty配置说明
- Spring控制反转与依赖注入(IOC、DI)
- 解决Jenkins console输出乱码
- ios 用户相册
- C# 实现远程控制软件的关键技术
- awk的使用备忘
- 常用cl命令参数解释
- js与objective-c的交互-备
- ASP.NET没有魔法——开篇-用VS创建一个ASP.NET Web程序
- 反馈法学习设计模式(一)——策略模式Strategy Pattern
- css绘制倒三角
- 阿里云ACE共创空间——MQ消息队列产品测试
- Mha-Atlas-MySQL高可用方案实践(二)
- Spring Boot 构建电商基础秒杀项目 (十一) 秒杀
- kafka笔记3(生产者)
- 深入理解linux内核v4l2框架之videobuf2【转】
- C. Classy Numbers