个人总结,有不到之处请留言.
隐式转换之一 Number()
- isNaN, ++, --, +(正号), -(负号), -(减号), *, /, % 只要有这些符号的都会隐式的用**Number()**转换的,是数字就转为数字不是得话就转为NaN,具体转化规则请看上篇js数据类型 显式转换
隐式转换之二 Boolean()
- &&, || , ! 或与非,其判断的时候都会经过Boolean()隐式转换的,但**&& 和 || 不是把转换的boolan值返回,而是返回其终止时当时的值**, 看下面例子:
let a = 1 && 2 && NaN && null
let b = NaN || 1 || 2 || null || 5
console.log(a, b) // NaN, 1
隐式转换之三 不转,Number()或String()
- 大于 > , 小于 <, 小于等于<=, 大于等于>=, 非等于 !=,这些运算的隐式转换我总结了是哪条规则:
*1,比较两边有一个数字或者有一个为布尔值时,使用Number()转换
*2,有一个是undefined或者null时