JavaScript的数据类型有 null、undefined、Number、String、Object、Boolean、Symbol,其中Symbol类型是在ES6新增的类型。其中Object类型又包括三个子类型,Function、 Array、Object(狭义)。
判断数据类型有三个方法。
typeof
1 | var list = [1,2,3]; |
通过以上例子可以看出 typeof判断数据类型的特点
- 无法准备判断数组和对象
- typeof null 的返回值为 “object”, 这是因为早期null就是属于”object”
- typeof 一个未定义的变量不会报错,而是返回 “undefined”
typeof在大多数情况是适用的,如果想准备判断数组,可使用Array.isArray()
进行判断。
instanceof
instanceof
方法只适用于判断Object类型的对象,基本类型的数据不适用。它的原理是检查右边的构造函数的prototype属性是否在左边实例的原型链上。
1 | var list = [1,2,3]; |
Object.prototype.toString.call()
这个方法可以准确返回判断对象的数据类型。
1 | var list = [1,2,3]; |