js条件判断

js条件判断,看似简单,却暗藏玄机。

==与===

=====多的一个就是数据类型的判断,很重要,建议用===.

true/false

在js中哪些是true,哪些是false呢?

  1. object(arr,class等)永远是true`
  2. undefiend ==> false
  3. null ==> false
  4. Boolean条件
  5. 数字:+0,-0,0,NaNfalse,其余为true
  6. 字符串:''false,其余有长度的为true

对比分析

为什么不建议用==判断,下面见证:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const cons = [{},undefined,null,-0,0,NaN,'']

for(let c1 of cons){
for(let c2 of cons){
if(c1!==c2){
if(c1==c2){
console.log(`${c1}==${c2}`);
}
if(c1===c2){
console.log(`${c1}===${c2}`);
}
//console.log(`${c1}==${c2}-->${c1==c2} | ${c1}===${c2}-->${c1===c2}`);
}
}
}

结果:(''其实是看不到的哈)

undefined==null
null==undefined
0==''
-0==''