何时使用 === 何时使用 ==?
变量计算 - 注意某些类型转换的坑
- 字符串拼接
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;