gpt4 book ai didi

javascript - 为什么当条件检查变量变为 0 时 while 循环停止?

转载 作者:行者123 更新时间:2023-11-29 16:47:17 26 4
gpt4 key购买 nike

谁能给我解释一下下面发生了什么?

var i = 5;
while(--i){
console.log(i);
}

事情是 while 循环直到 1(控制台记录 4,3,2,1)

我知道如果我检查 1 或 0 是否为真我将得到以下结果

0 == true > false

1 == true > true

我不明白的是当数字类似于 4 时会发生什么?那是如何工作的?

因为检查 4 是否为真将产生以下结果

4 == true > false

最佳答案

如上评论:

4 是 javascript 中的真值:

if (4) {
console.log(true);
} else {
console.log(false);
}

这将打印true

另一种查看方式:

0 and true = false
1 and true = true
4 and true = true

truthy 的文档:https://developer.mozilla.org/en/docs/Glossary/Truthy

In JavaScript, a truthy value is a value that translates to true when evaluated in a Boolean context. All values are truthy unless they are defined as falsy (i.e., except for false, 0, "", null, undefined, and NaN).

4 != true 的原因是 true 值被强制转换为数字。所以事实上 4 == true + true + true + true

关于javascript - 为什么当条件检查变量变为 0 时 while 循环停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com