繁体   English   中英

我不明白如何在JavaScript中编写IF / THEN语句?

[英]I don't understand how to write an IF/THEN statement in JavaScript?

这怎么可能发生?

var X = db.getItem('ShowDeleted');
console.log(X);
if (X) {
    console.log(1);
} else {
    console.log(2);
}

在Firebug中,我得到:

true
1
false
1

当我解雇相关代码段时。

编辑:我很抱歉使用数据库。 在我的例子中。 db = localStorage。

我想象中正在发生的事情(尽管在不知道db.getItem返回什么类型的情况下实际上是不可能知道的)是X最终是一些非布尔值。 然后,由于变量是除0之外的某个值,因此if语句始终为true 也就是说,如果它返回字符串"false" (或与此相关的任何对象),则以下内容始终跟随if分支,而不是else分支

if("false"){
  //do something
} else {
  //do something else
}

您需要确保您实际上是在评估布尔值,而不是其他值。

正如ghik所指出的,您的X值可能会以字符串形式返回。 是一个jsfiddle脚本,当设置为布尔值时可以正常工作,并在设置为字符串时显示您的异常行为

//boolean version
var X =true;
console.log(X);
if (X) {
    console.log(1);
} else {
    console.log(2);
}
var X =false;
console.log(X);
if (X) {
    console.log(1);
} else {
    console.log(2);
}
//outputs
true
1
false 
2


//String version
var X ='true';
console.log(X);
if (X) {
    console.log(1);
} else {
    console.log(2);
}
var X ='false';
console.log(X);
if (X) {
    console.log(1);
} else {
    console.log(2);
}
//outputs
true
1
false 
1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM