我今天遇到了一个奇怪的问题,我想知道为什么会发生这种情况...我的印象是,在 javascript 中,任何不明确为 false(false、0 或 NULL)的内容都会返回 true。
将 console.log() 附加到示例 1 中的 isNative 和示例 2 中的 localStorage.getItem(app + ".native_context") 时,均返回“false”。然而,当实际运行这些时,示例 1 在两种情况下都可以工作,但示例 2 无论如何都会返回 true,让我觉得一切都被接受为 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
}
}
谁能解释一下发生了什么?我很想知道。
最佳答案
大多数字符串都是“真实”值:
if('false') {
alert('A string is usually truthy!');
}
关于javascript - 为什么这些评估方式不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006011/