嵌套在WHILE循环中的IF语句的结果混淆了我(Javascript)
Result of IF statement nested in WHILE loop confusing me (Javascript)
这是我的完整代码(javascript):
var products = ["Choo Choo Chocolate", "Icy Mint", "Cake Batter", "Bubblegum"];
var hasBubbleGum = [false, false, false, true];
var i = 0;
while (i < hasBubbleGum.length) {
if (hasBubbleGum[i]) {
console.log(products[i] + " contains bubblegum");
}
i = i + 1;
}
此代码返回控制台:
Bubblegum contains bubblegum
让我困惑的是嵌套在while循环中的IF语句。我知道这个代码是正确的,但我不明白为什么当hasBubbleGum设置为FALSE时,它会绕过IF语句。
我最初的想法是打印到控制台会产生:
Choo Choo Chocolate has bubblegum
Icy Mint has bubblegum
Cake Batter has bubblegum
Bubblegum has bubblegum
我是否遗漏了一个关键的基本思想,即IF语句忽略FALSE的布尔值?
我是否遗漏了一个关键的基本思想,即IF语句忽略FALSE的布尔值?
是的,你是。这就是if
的全部要点。在大多数语言中,if
语句遵循以下模式:
if (expression) then {statements}
在许多语言中,then
是隐含的,而不是键入的。如果对于允许隐式转换为boolean
或缺少本机boolean
类型的语言,(expression)
是true
或"thruthy",则仅执行{statements}
。例如,在许多语言中,0
被认为是false
,而任何不是0
的东西都被视为true
。
hasBubbleGum[i]
是一个表达式,它将根据索引i
处数组的内容返回boolean
值。你的困惑可能是因为不理解像==
这样的条件表达式的作用;它们只是"特殊函数",根据操作数返回CCD_ 17或CCD_。
if
语句是基本控制流原语之一。流控制语句的目的是基于某些条件"控制程序执行的流"。CCD_ 20循环也是一个控制流语句;只要其条件保持为true,其范围内的代码就会在循环中执行。
代码是正确的,实际上唯一设置为true
的产品是"Bubblegum"
。
如果你想要你想要的结果,你应该改变你的布尔掩码如下:
var hasBubbleGum = [true, true, true, true];
if
语句中没有任何错误,true
的唯一条件是最后一个hasBubbleGum
布尔数组。
我不明白为什么当hasBubbleGum设置为FALSE时,它会绕过IF语句。
它并没有绕过if
语句:if
语句执行,评估其条件(hasBubbleGum[i]
),看到结果值为false
,因此不执行附加到它的语句。if
运行,但由于除i = 3
外的所有条目的hasBubbleGum
都为false,因此您看不到其他条目的任何输出,只看到i = 3
的输出。
- Google Chrome 不会执行所有 JavaScript 语句
- 嵌套于..在JavaScript语句中
- Javascript语句的哪一部分是字面意思
- 什么'这个javascript语句错了
- 我的 javascript 语句不会运行其 else 语句,即使未选中复选框
- 可以在Applescript中执行内联JavaScript语句
- 如果不是 javascript 语句
- 关于字符串串联的令人困惑的 JavaScript 语句
- 将 php 变量添加到从之前转换为 php 的 html/javascript 语句中
- 是否可以从文档中的输入字段执行简单的 javascript 语句
- 增强的 Javascript 语句使用安全
- 将 html 表单值视为 JavaScript 语句
- 添加 JavaScript 语句
- Javascript 语句执行顺序
- jsp 命令<%=%> 在 Javascript 语句中使用时被忽略,在 taglib 标记语句内
- 为什么当我执行这个 JavaScript 语句来创建一个新的 Number 对象(使用 new 运算符)时,Chrome
- 下面的javascript语句是如何评估的
- 使用highcharts更改javascript语句中的marginLeft和marginRight
- 有没有合适的方法将特定的javascript语句翻译成java
- 解释以下 JavaScript 语句