js常用的几种类型检测方式
类型检测方式
平时数据类型都是清晰明了的,但有些功能函数还是需要用到类型检测,现总结一下几种常见的类型检测方式:
- typeof
- instanceof
- Object.prototype.toString
typeof:
通常只记得适合基本类型,
不要忘了还有函数对象
还有只能大致判断的Object相关的
还有一个非主流的null
那么多个object,谁是谁呢?
instanceof:
A instanceof B:
A: 基本类型就直接GG,false,必须是个对象
B:要么是个对象,要么是个构造函数
跨平台iframe、不同window一样GG;
代表是A的原型链上是否有B的prtotype属性(有点拗口,用lol简单点就是判断英雄A(奥巴马)有没有B(破败)的被动来判断是否已经买了B(破败),好吧也不太准确词穷)
所以说这个null有点日怪;
instanceof最主要的还是判断这个原型链上的关系:
这个是亲生的
也许你会想这样
因为这是个假老王,
好吧,来个借腹生子的,
关键在于改变了ls.__proto__的指向
怎么生一窝呢?
还是把构造器弄回来吧
太懒了,箭头都不想打了
Object.prototype.toString:
原型链倒数第二层Object上的方法,原型链没有__proto__就没有再下一层了,再找是null了
怎么用呢,借助call或者apply吧,
Object.prototype.toString.apply();
Object.prototype.toString.call();
这个在ie678还是不撑头,null和undefined还会返回"[object Object]";
最新文章
- IT青年深圳销售求职经历
- WP8.1下 Cortana语音命令 VCD文件 设计
- 博客打开慢?请禁用WordPress默认的谷歌字体!
- Java7编程 高级进阶学习笔记--嵌套类
- How to use 'crontab' command on bitnami
- Protocol Buffers编码详解,例子,图解
- iOS之可拖拽重排的CollectionView
- BZOJ_1202_狡猾的商人_(并查集)
- Simpsons’ Hidden Talents - HDU 2594(求相同的前缀后缀)
- FTP文件操作之下载文件
- 利用scrollTop 制作图片无缝滚动
- Linux RCU机制详解
- RabbitMQ插件安装
- linux系统编程快速定位头文件的技巧之强大的grep命令
- php 通过curl header传值
- 蛋白质结构模型和功能预测:Swiss-model工具的使用
- mybatis中动态SQL之trim详解
- Django之模型层(单表操作)
- Spring实现文件的上传下载
- NVIDIA安装显卡提示你必须先安装Intel怎么办