类型检测

基本类型和引用类型

JS 有两种类型,分别是基本类型和引用类型。

基本数据类型:

  1. Number
  2. Boolean
  3. String
  4. undefined
  5. null
  6. Symbol(ES6 新增 表示唯一值)

引用数据类型:
统称 Object 对象,包括对象Object、数组 Array 和函数 Function

值得一提的是基本类型存储在栈中(stack),引用类型将在栈中存储了指针,并将指针指向堆中实体的实际地址。

如何判断是什么类型

typeof

instanceof

constructor

constructor 是每个构造函数都会有的属性,但可想而知 Nullundefined 没有构造函数 所以无法判断,另外在类的原型在重写过程中容易把 constructor 覆盖掉,所以这种检测结果是不稳定的

toString

总结

typeof 适合用来判断基本类型
instanceofconstructor 虽然也能判断类型,但是弊端比较多不推荐使用
最后,toString 大法好