在if语句中检查布尔值

时间:2019-02-06 10:33:11

标签: javascript if-statement boolean

今天,我遇到了我根本无法理解的Javascript问题。

我有此代码:

var status = false;
console.log(status, typeof status);
if (status) {
  console.log("status is true");
} else {
  console.log("status is false");
}

由于ifstatus,所以我希望它不能满足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以外,还有什么其他东西?

我想念什么?

1 个答案:

答案 0 :(得分:-1)

您正在经历这种情况,因为状态是js中的保留字。使用另一个变量名称,例如stat,它将正常工作。

更多info

var stat = false;
if(stat){
    console.log("status is true");
} else {
    console.log("status is false");
}