我知道undefined
不是===
到null
,但是!
运算符呢?如果我有执行此检查的代码,则
if (obj === undefined || obj === null)
将其简化为
if(!obj)
它们相同吗?
答案 0 :(得分:1)
否。
!obj
对于0
之类的虚假信息也适用。
obj === undefined || obj === null
仅在obj
为null
或undefined
的情况下为真。
!obj
对于任何虚假值都是正确的。
它们是:
false
(本质上不是真的“虚假”……)0
""
null
undefined
NaN
答案 1 :(得分:1)
在检查中使用!
运算符时,是否比较所有falsey
值
下面是falsey
值的列表:
换句话说:
let obj = '';
if(!obj) { console.log('opps, not undefined, still printing')}
答案 2 :(得分:0)
不是。
任何伪造的值都会通过测试:0,-0,null,未定义,空字符串,false。