1

所以我想知道为什么

var x=5
function foo(){
  return x++
}
foo()

返回 5 和

var x=5
function foo(){
  return ++x
}
foo()

返回 6。

是否因为++运算符的优先级将其排除在返回之前执行 - 即。优先级是(return x)++?还是有什么棘手的事情发生?

4

1 回答 1

8

这是前/后增量。这就是操作员的工作方式。++varpre increment ,这意味着值在返回之前递增,并且var++post increment ,其中值在返回后递增。

您可以在此处找到有关这些语义的更多详细信息。

于 2013-10-09T02:57:16.683 回答