我已经将 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/