js数据类型
数据类型
- 原始类型
- Primitive原始的
- 6种
- null
- undefined
- string
- number
- bool
- symbol
- 特点
- 存储的都是值
- 没有方法调用
- 原始类型的坑
- 特例
- '1'.toString()可以调用
- 此时被强制转化成String类型
- number类型是浮点类型
- string类型不可变
- 无论调用什么方法
- '1'.toString()
- 返回的还是string类型
- 只是调用toString的时候
- 被认为是String的对象类型
- null不是对象类型
- 但是typeof null === 'object'
- 历史原因
- 判断类型
- typeof
- 不能准确判断
- typeof null === 'object'
- 'function'typeof [] // 'object'
- typeof {} // 'object'
- typeof console.log // 'function'
- instanceof
- 判断对象的正确类型
- 通过原型链判断
- 判断原始类型
- 默认不行
- 解决办法
- static Symbol.hasInstance(val){return typeof(val)==='string')}
- static为es6语法糖
- 静态属性或者静态方法
- 类直接调用
- 而不是类的实例上调用