2014-09-25 103 views
1

我有一个很短的问题,但它真的让我困惑。JavaScript中的x ++有什么用途?

var y = 3, x = y++; 

x的值是多少?

我想答案应该是4,但实际上它是3

任何人都可以解释我的原因吗?

+1

x = y ++在这里,该值被分配,然后递增。这个x = ++ y将会增加并赋值。 – 2014-09-25 05:44:53

+0

当你做x = y ++;首先它会将y的值赋给x,然后它会增加。 – 2014-09-25 05:45:09

回答

0

y++,++被称为“增量后运算符”。它首先使用值y,然后递增y。在此,与“预增加运算符”++y形成对比,其首先增加y,然后返回增加的值。

5
y++

称为后增量 - 它递增变量后返回原始值作为表达式的值。所以

x = y++; 

等同于:

temp = y; 
y = y + 1; 
x = temp; 

如果你想返回新值,你应该使用++y。这被称为预先增量,因为它在返回之前递增变量。声明

x = ++y; 

等同于:

y = y + 1; 
x = y; 
0

++运营商做了两两件事。它递增一个变量并返回变量的值。

如果以前缀为例,即++y,它将在增量后返回值(在您的情况下为4)。如果你使用后缀(y++),它会返回增量前的值(在你的情况下为3.请注意,y的值现在仍然是4,但是在y递增之前x被赋值)。

0
var y = 3; 
x = ++y; 
console.log(x); 

这将导致4

这就是所谓的 “预增”。它返回增加的值。

y++是后增量,它返回原始值。