跳到主要内容

何时使用 === 何时使用 ==?

变量计算 - 注意某些类型转换的坑

  • 字符串拼接
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