我用JavaScript編寫的一段非常簡單的代碼存在問題,請問您能幫我些忙嗎?未定義的變量,值== false與!值
這裏就是我想我已經明白到目前爲止關於JavaScript和變量:
- 一個未定義的值進行評估,以虛假的布爾運算
- 通過在比較 - 使用==操作符,你」重新詢問兩個數值是否具有可比性,無論他們的類型如何
我在網上課程中發現了一個練習文件,我嘗試這樣做,但是我沒有得到本課中預期的相同結果;主要的問題是我通過「if value == false {...}」來比較值,而解決方案使用「if!value {...}」
所以我決定寫一個非常短的代碼,以便自己嘗試,但我得到了不同的結果。在下面的例子中,我期望這個JS代碼生成兩個相同的警報(「foo等於false」),但是第一個if語句返回「foo不等於false」,而第二個if返回(如預期的那樣) 「foo等於假」。
這是我寫的東西:
var foo = undefined;
if (foo == false) {
alert("foo is equal to false");
} else {
alert("foo is not equal to false"); // Javascript executes this row
}
if (!foo) {
alert("foo is equal to false"); // Javascript executes this row
} else {
alert("foo is not equal to false");
}
AFAIK的雙中頻應該做同樣的工作,逸岸當我試圖在第一線的值替換「變種富=不確定;」用「var foo = 0;」它按預期工作,0是另一個應該被評估爲假的值,或者至少這是我記得的。
你能告訴我我做錯了什麼嗎?
那是因爲不等於'FALSE'。然而,undefined是falsey所以'undefined' - > true – Raynos 2012-01-04 17:07:44
等於false和「falsey」之間的區別是什麼? – Cesco 2012-01-04 17:16:46
如果相等然後'x ==虛假'如果虛假然後'!x == true' – Raynos 2012-01-04 17:17:16