[英]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.