javascript - 如果需要在圆括号中的速记?

标签 javascript

我已经将 x 和 y 声明为这样的数字:

var x = 5;
var y = 0;

然后我想使用 for 循环。 如果我有这样的代码,它工作正常:

for(let i = y; i < ((x == 5) ? x : x); i++) {
    console.log(i, x);
};

但是,当我删除缩短的 if 周围的圆括号时,for 将无休止地进行。为什么?示例如下:

for(let i = y; i < (x == 5) ? x : x; i++) {
    console.log(i, x);
};

最佳答案

每次迭代都会检查 for 循环中间部分的条件是否为真。

省略括号,i < (x == 5) ? x : x被评价为

如果i小于 (x == 5) , 返回 x , 否则返回 x

因此,将整数与 bool 值进行比较,这首先没有多大意义,但除此之外,条件的计算结果始终为 x ,这是真实的(除非你给它的值为 0)。所以循环将永远运行下去。

关于javascript - 如果需要在圆括号中的速记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58202655/

相关文章:

javascript - 如何获取名为 skill[] 的 select 标签中所有选中选项的值?

javascript - 循环内的 promise

javascript - 鼠标悬停和鼠标移出在 Firefox 上不起作用?

javascript - JQuery 删除样式表和 JS

javascript - React,映射中等复杂的 json 对象以获取消息内的键

javascript - Openlayers3 - 使用捏合手势在触摸设备上进行分数缩放?

javascript - react : recursively render nested elements

javascript - 无法在expressjs中为前端和后端使用多个静态路径

javascript - 为什么修改 Number.prototype.toString 不起作用?

javascript - 与 Javascript 库互操作(即 NPM 包 AWS Amplify)