對話很便宜,我會顯示我的代碼。爲什麼(!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')。 –