如果我想增加一个值然后将它存储在另一个变量中,为什么不能在一行代码中执行?为什么这不会增加并存储值?
这工作
var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1
但这并不
var count = 0;
var printer = count++;
alert(printer); //Prints 0
如果我想增加一个值然后将它存储在另一个变量中,为什么不能在一行代码中执行?为什么这不会增加并存储值?
这工作
var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1
但这并不
var count = 0;
var printer = count++;
alert(printer); //Prints 0
您正在使用后递增运算符。增量在赋值表达式完成后发生。
使用预递增的版本,而不是...
++count;
或者使用+=
操作...
count += 1;
你需要做的
var count = 0;
var printer = ++count;
alert(printer);
W3Schools的页面的JavaScript Arithmetic Operators部分具有一个试试体面击穿我实验室。简而言之,如果您在变量之前执行递增/递减操作,则会在当前操作使用它之前进行。如果以后包含它,它会在当前操作之后发生。
啊哈,所以这就是为什么!日Thnx。 – CalabiYau 2012-08-09 14:11:56
w3schools?真? http://w3fools.com/ :-) – 2012-08-09 14:29:15
@GarrettVlieger即使不好的地方也能找到好的信息 – 2012-08-09 14:38:37
++
改变的结果取决于在你使用它的地方:
y = 0;
x = y++; // post-increment
相当于
y = 0;
x = y;
y = y + 1;
和
x = ++y; // pre-increment
相当于
y = 0;
y = y + 1;
x = y;
它可以在一个线路来完成。
//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
+1,MDC总是比w3cschools好:) – Alfabravo 2012-08-09 14:16:40