而(i)循环使用JavaScript

时间:2017-12-06 03:27:50

标签: javascript while-loop

我在JavaScript中运行以下代码

let i = 3;
while (i) {
    console.log(i--);
}

因为while(i)while(i>0)不一样,所以我期望结果为3,2,1,0,-1,-2,......

但实际结果是3,2,1。谁能向我解释这个案子?我很困惑。

2 个答案:

答案 0 :(得分:2)

while循环一直运行,直到检查条件为false。

在这种情况下,它是i的值。

由于Javascript是动态类型的(即 - 我们在定义变量时没有定义类型),i的值将从它当前所在的类型转换为布尔值。

在这种情况下,您将数值设置为i。数字0被认为是错误的。因此,打破while循环。

您可以参考here获取错误值的完整列表。

答案 1 :(得分:-1)

while循环运行,直到其条件设置为false。请注意,所有语句(如while,if和ternaries)都以相同的方式处理条件。更好地理解如何用最简单,最快捷的方式测试三元组。

我经常在js控制台上运行如下的内容,例如chrome(ctrl + j)

1?2:3;
0?2:3;
5?2:3;
"Hello"?2:3;
""?2:3;

等等。这些是条件语句,第一个数字作为条件,第二个(2)是如果它是真的将被返回的内容,第三个(3)是它将返回的内容,如果它是假的。请注意,2和3只是随机数。

在您显示的示例中,i是一个整数。对于整数,仅将0视为false。