何时使用 === 何时使用 ==?
变量计算 - 注意某些类型转换的坑
- 字符串拼接
const a = 100 + 10 // 110
const b = 100 + '10' // '10010'
const c = true + '10' // 'true10'
- \==运算符
100 == '100' // true
0 == '' // true
0 == false // true
false == '' //true
null == undefined // true
除了 == null 之外,其他都一律用 ===,例如
const obj = {x: 100}
if (obj.a == null) {
}
相当于:
if (obj.a === null || obj.a === undefined){}
- 逻辑判断
js 主要是判断 truely 变量还是 falsely 变量
console.log(10 && 0) // 0 因为 10 是 truely 变量所以要判断第二值 0,所以返回 0
console.log('' || 'abc') // 'abc'
console.log(!window.abc) // true
需要注意的 falsely 变量,都为 false
!!0 === false
!!NaN === false
!!'' === false
!!null === false
!!undefined === false
!!false === false