Skip to content

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

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

  • 字符串拼接
js
const a = 100 + 10; // 110
const b = 100 + '10'; // '10010'
const c = true + '10'; // 'true10'
  • ==运算符
js
100 == '100'; // true
0 == ''; // true
0 == false; // true
false == ''; //true
null == undefined; // true

除了 == null 之外,其他都一律用 ===,例如

js
const obj = { x: 100 };
if (obj.a == null) {
}

相当于:

js
if (obj.a === null || obj.a === undefined) {
}
  • 逻辑判断

js 主要是判断 truely 变量还是 falsely 变量

js
console.log(10 && 0); // 0 因为 10 是 truely 变量所以要判断第二值 0,所以返回 0
console.log('' || 'abc'); // 'abc'
console.log(!window.abc); // true

需要注意的 falsely 变量,都为 false

js
!!0 === false;
!!NaN === false;
!!'' === false;
!!null === false;
!!undefined === false;
!!false === false;

基于 MIT 许可发布