我今天遇到了一個奇怪的問題,我想知道爲什麼會發生這種情況......我的印象是,在JavaScript中,任何不明顯爲false(false,0或NULL)的東西都會返回true。爲什麼這些評估方式不一樣?
將console.log()附加到示例1中的isNative和示例2中的localStorage.getItem(app +「.native_context」)時,兩者都返回「false」。但是,在實際運行這些示例時,示例1在兩種情況下都可以工作,但無論如何,示例2都會返回true,從而給我留下所有被接受爲真的印象。
例1:
var isNative = localStorage.getItem(app + ".native_context");
if (isNative === "true") {
//do x
} else {
//do y
}
}
例2:
if (localStorage.getItem(app + ".native_context")) {
//do x
} else {
//do y
}
}
任何人能解釋發生了什麼事?我很想知道。
如果它包含一個字符串' 「假」'那麼它是一個非空字符串,它是真實的。 – JJJ
字符串不是布爾值。 –
我們不知道'localStorage.getItem(app +「.native_context」)'的結果是什麼。顯然這不是字符串「真」。 – colecmc