3

如果我想增加一个值,然后将其存储在另一个变量中,为什么不能在一行代码中做到这一点?

这有效

var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1

但这并不

var count = 0;
var printer = count++;
alert(printer); //Prints 0
4

4 回答 4

10

您正在使用后递增运算符。赋值表达式完成后发生递增。

请改用预递增版本...

++count;

或者使用+=运算符...

count += 1;
于 2012-08-09T14:10:39.470 回答
5

你需要做

var count = 0;
var printer = ++count;
alert(printer); 

w3schools 页面的JavaScript 算术运算符部分通过 Try Me 实验室进行了不错的细分。简而言之,如果在变量之前进行递增/递减操作,它将在当前操作中使用之前发生。如果您在之后包含它,它将在当前操作之后发生。

于 2012-08-09T14:10:38.847 回答
1

它可以在一行中完成。

//Example 1
var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1

//Example 2
var count2 = 0;
var printer2 = count2++;
alert(printer2);   //Prints 0
printer2 = count2++;
alert(printer2);   //Prints 1

// Example 3, in one line
var count2 = 0;
var printer2 = count2 + 1;
alert(printer2);   //Prints 1

// Example 4, in one line
var count2 = 0;
var printer2 = ++count2;
alert(printer2);   //Prints 1
于 2012-08-09T14:15:49.223 回答
0

++根据您使用它的位置更改结果:

 y = 0;
 x = y++; // post-increment

相当于

 y = 0;
 x = y;
 y = y + 1;

 x = ++y; // pre-increment

相当于

 y = 0;
 y = y + 1;
 x = y;
于 2012-08-09T14:12:55.350 回答