今天,我遇到了我根本无法理解的Javascript问题。
我有此代码:
var status = false;
console.log(status, typeof status);
if (status) {
console.log("status is true");
} else {
console.log("status is false");
}
由于if
是status
,所以我希望它不能满足false
语句。而且,它是布尔值,而不是字符串。
我错了。它返回了"status is true"
,因此status
满足if
语句。
我更改了代码以指定条件,而不仅仅是变量:
var status = false;
console.log(status, typeof status);
if (status == false) {
console.log("status is false");
} else {
console.log("status is not false");
}
请注意,由于我们不是在检查变量本身的值,而是在检查它是否为false
,所以我切换了输出消息。
当我在控制台上阅读"status is not false"
时,我真的开始慌了。除了false
以外,还有什么其他东西?
我想念什么?
答案 0 :(得分:-1)
您正在经历这种情况,因为状态是js中的保留字。使用另一个变量名称,例如stat,它将正常工作。
更多info
var stat = false;
if(stat){
console.log("status is true");
} else {
console.log("status is false");
}