Javascript 在while循环中使用--运算符会产生意外的结果
在这个公式中Javascript 在while循环中使用--运算符会产生意外的结果,javascript,loops,while-loop,Javascript,Loops,While Loop,在这个公式中 var x = 5; while(x--) { console.log(x) } 输出是 4 3 2 1 0 为什么要输出0?在第五次迭代中,x--将等于0,这是错误的,因此循环不应该运行 同样,这将返回true var x = 1; (x--) == true; 但这个结果是错误的 0 == true x——首先计算,然后递减变量。 如果改用--x,您将得到预期的结果。因为--在计算x之后发生。与--x相比,公平地说,大多数具有类似运算符的语言都可以。。。好的,类似的。这
var x = 5; while(x--) { console.log(x) }
输出是
4
3
2
1
0
为什么要输出0
?在第五次迭代中,x--
将等于0
,这是错误的,因此循环不应该运行
同样,这将返回true
var x = 1;
(x--) == true;
但这个结果是错误的
0 == true
x——首先计算,然后递减变量。
如果改用--x,您将得到预期的结果。因为
--
在计算x
之后发生。与--x
相比,公平地说,大多数具有类似运算符的语言都可以。。。好的,类似的。这与Javascript无关,这就是每种语言中后增量的工作方式?前缀和后缀行为并不是Javascript的古怪之处。这不能归咎于JavaScript。后减量操作符在C、C++、java和C语言中的行为方式相同,可能是我现在不在考虑的那个家庭中的其他语言。有趣的是,它也在块之前进行评估。