Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在while循环中使用--运算符会产生意外的结果_Javascript_Loops_While Loop - Fatal编程技术网

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语言中的行为方式相同,可能是我现在不在考虑的那个家庭中的其他语言。有趣的是,它也在块之前进行评估。