奇怪的if-else行为Javascript
Weird if-else behaviour Javascript
即使if语句为假,下面的else语句也不会执行。我想我犯了一些非常基本的错误,但我不知道是什么。
var a = ["king","queen","100"];
for (var i=0; i<a.length; i++) {
if (a[i] === "king" || "queen"){
console.log("monarch");
}
else {
console.log("The number is: "+ parseInt(a[i]));
}
}
// This prints out "monarch" 3 times
应该是:
var a = ["king","queen","100"];
for (var i=0; i<a.length; i++) {
if (a[i] === "king" || a[i] === "queen"){
console.log("monarch");
}
else {
console.log("The number is: "+ parseInt(a[i]));
}
}
你写你的布尔表达式的方式,我们会说口语," a是1或2"。这不是OR
的解释方式。
OR
为true
, a[i] === "king"
为true
;或者OR
的右边是true
: "queen"
。它自己计算字符串,字符串"queen"
不是null
,所以它的计算结果是true
。
您必须分别使用||
设置以下两个条件:a[i] === "king" || a[i] === "queen"
相关文章:
- jQuery/Javascript.toggleClass/.classList.toggle的特殊行为
- JavaScript匿名函数行为
- 通过JavaScript捕获并更改默认警报()行为
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- AJAX Post的奇怪Javascript/PHP行为
- Javascript不需要的关闭行为
- 在类外重写Javascript方法,使用默认行为
- Onenote API,从JavaScript进行PATCH时的奇怪行为
- 使用javascript的Phaser中的一个奇怪行为
- 无法解释的JavaScript行为-错误
- coffescript/javascript函数数组的行为真的很奇怪
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- Javascript的行为与PHP包含文件不一致
- Javascript赋值运算符的奇怪行为
- 更改javascript中的tab键行为
- 奇怪的设置超时行为Javascript
- 奇怪的if-else行为Javascript
- 奇怪的行为javascript regexp
- 数组在双循环中的奇怪行为- JavaScript
- 奇怪的返回提交行为JavaScript