类型检测
基本类型和引用类型
JS 有两种类型,分别是基本类型和引用类型。
基本数据类型:
- Number
- Boolean
- String
- undefined
- null
- Symbol(ES6 新增 表示唯一值)
引用数据类型:
统称 Object 对象,包括对象Object、数组 Array 和函数 Function
值得一提的是基本类型存储在栈中(stack),引用类型将在栈中存储了指针,并将指针指向堆中实体的实际地址。
如何判断是什么类型
constructor
constructor 是每个构造函数都会有的属性,但可想而知 Null 和 undefined 没有构造函数 所以无法判断,另外在类的原型在重写过程中容易把 constructor 覆盖掉,所以这种检测结果是不稳定的
总结
typeof 适合用来判断基本类型
instanceof 和 constructor 虽然也能判断类型,但是弊端比较多不推荐使用
最后,toString 大法好