对话很便宜,我会显示我的代码。为什么(!a)和(a == false)不相等?
var a; // a = undefined
if(a == false){ // As I typed == not ===, a needs to be translated to boolean (undefined == false) but it doesn't
return false;
}
else {
return true;
}
// true
这将返回true,但我相信,这将返回false,因为不确定的是一样的错误,当我使用双相等。当我试图用
if(!a){..} else {..};
// false
事情来到这里的怪我得到了我的错误,但直到这一刻我以为(!a)和(A == false)被完全平等的。
only'undefined == null'为'true' not'undefined == false'。 –
@ibrahimmahrir:这与'null'有什么关系? –
@FelixKling他可能将它们混合起来(当使用'=='时,所有的falsy值都是相等的,但只有'null'和'undefined')。 –