在学习JavaScript的一些总结和经验,供大家参考和学习,同时也欢迎大家参与讨论。
JavaScript的七种数据类型和typeof&instanceof操作符
七种数据类型
基本数据类型(简单数据类型或原始类型):Undefined、Null、Boolean、Number、String
复杂数据类型:Object
ES6新增的数据类型:Symbol
对象是最复杂的数据类型,他可以分为三个子类型:object、array、function(不正规说法)typeof操作符
1 | var s = "yicong"; |
如上所知:
当在检测引用类型的时候,typeof它返回的结果都是Object,所以在检测引用值类型的时候typeof的用处并不大,所以我们使用了ECMAScript提供的instanceof操作符来检测引用类型值。
- 如果是引用类型值,那么instanceof操作符就会返回true;
- 注意:所有引用类型的值都是Object的实例,如果使用instanceof操作符去检测基本类型的值,则它会返回false;
为什么所有引用类型的值都是Object的实例?
因为当你在控制台写下 [] 的时候,它已经给你隐式帮你new Array()了,Array()是一个构造函数,所以[]就是对象的实例。
- 解答:因为基本类型不是对象
手撕instanceof操作符
1 | function instance_of(ordinary,construct){ |
也就是说:
- ordinary对象是不是construct构造函数构造(new)出来的,
- ordinary对象的原型链上有没有construct的原型
例子:
1 | function Fn() { // 构造函数 |
文章标题: 七种数据类型和typeof&instanceof
文章作者: 王奕聪,QQ:1301842163
许可协议:
©署名-非商用-相同方式共享 4.0
