javascript - 为什么 -1 是假的? - 为了 (

标签 javascript for-loop

下面的 for 循环按预期工作,但我只是不明白为什么。

for (var i = 10;i--;) { 
    console.log("i: " + i); 
}

控制台:>> 9,8,7,6,5,4,3,2,1,0

我在 google 上搜索了 falsy 值:0 和 -0 ..(-0 是什么意思?)但如果 0 被认为是 falsy,为什么要用它评估 for 循环? 实际上原始代码示例实际上是这样的:

for (var i = e.length; i--; )
    e[i].apply(this, [args || {}]);

它看起来很酷,但我就是不明白它为什么会起作用。

最佳答案

for条件中

for (var i = 10;i--;) { 
    console.log("i: " + i); 
}

i before 被计算(由于后递减运算符)。因此它在条件中是 1,而当你实际打印出来时它是 0。

关于javascript - 为什么 -1 是假的? - 为了 (,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971929/

相关文章:

javascript - Three.js - 在运行时更改 Material

python-3.x - 使用Python银行系统以相同的名称查找多个帐户

javascript - for 循环中嵌套 if 条件的 setTimeout

javascript - 查看页面时需要将鼠标悬停在突出显示位置

Javascript 复选框 onclick/onchange

javascript - 如何通过单击一个复选框将多个复选框值附加到文本区域

javascript - iOS 5.1 和 Safari Mobile 限制

java - 如何在 for 循环中使用包含 JButton 的数组来绘制网格?

python - 循环帮助: it doesn't wait for loadFinished SIGNAL in PyQt4

c - For 循环程序返回 [value]i 而不是 [value]