如果我想增加一個值然後將它存儲在另一個變量中,爲什麼不能在一行代碼中執行?爲什麼這不會增加並存儲值?
這工作
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