1.5 JS数据类型检测
-
typeof[val]: 用来检测数据类型的
运算符-
方法,比如 sum()
-
运算符,比如说 + - * / % ! == ...
-
-
instanceof : 用来检测当前实例是否隶属于某个类
- 是运算符
-
constructor : 基于构造函数检测数据类型(也是基于类的方式)
- 是属性,不是运算符不是方法
-
Object.prototype.toString.call(): 检测数据类型最好的办法
-
做轻量级检测可以选择前仨
1.5.1 typeof
- 基于 typeof 检测出来的结果
-
首先是一个
字符串 -
字符串中包含对应的数据类型
- 局限性:
-
typeof null => 'object' ,但是 null 并不是对象(引用类型值),null 是空对象指针,被 typeof 归于对象类型
-
基于 typeof 无法细分当前值是普通对象还是数组对象等等,因为只要是对象类型,返回的结果都是'object'
console.log(typeof 1); // 'number'
基本类型
引用类型
- 练习题
console.log(typeof ... typeof typeof []) // 'string';
因为 typeof 检测的结果都是字符串,只要两个及以上 typeof 同时检测,返回值必是'string'