类型及检测方式
1. JS数据类型(8种)
2. 数据类型检测
- typeof —— 检测基本数据类型,除了null
- instance of —— 通过原型链实现检测实例是否属于某个类
- constructor —— 不准确,可以修改constructor
- Object.prototype.toString.call()
3. 数据类型转换
对象转基本类型
- 调用内置的[Symbol.toPrimitive]函数
- 调用valueOf()方法
- 调用toString()方法
四则运算转换
对于加法而言
- 如果一方为字符串,那么就把另一方转换为字符串
- 如果一方不是数组或字符串,那么就把它转换为数字或字符串
1 + '1' // '11'
true + true // 2
4 + [1,2,3] // "41,2,3"
除了加法的运算符:
- 只要其中一方是数字,那么另一方就会被转为数字
4 * '3' // 12
4 * [] // 0
4 * [1, 2] // NaN
执行上下文
指向上下文是一个对象,他有三种类型:
- 全局执行上下文
- 函数执行上下文
- eval执行上下文
它包含三个部分:
-
变量对象VO
-
作用域链
-
this