[红宝书笔记:强制类型转换]

272 阅读1分钟

ECMAScript中的!===,会首先判断两个操作数是否相等。如果不等或相等,则根据对应情况返回true或者false. 两个操作符在比较操作数是否相等之前会首先进行类型转换(通常称为强制类型转换)。

强制类型转换遵循以下规则
  1. 任一操作数是布尔值,将布尔值转换为数值后再比较
  2. 如果一个操作数是字符串,一个操作数是数值,尝试将字符串转换为数值后再进行比较
  3. 如果一个操作数是对象一个不是,调用对象的valueOf()方法取得原始值在进行比较
两个操作数的比较遵循如下规则
  • nullundefined相等
  • nullundefined不能转换为其他类型的值进行比较
  • 任一操作数是NaN 相操作符都返回false 、不等操作符返回true
  • 对象比较索引