値をインクリメントしてから別の変数に格納したい場合、1行のコードでそれを実行できないのはなぜですか?
これは動作します
var count = 0;
count++;
var printer = count;
alert(printer); //Prints 1
しかし、これはしません
var count = 0;
var printer = count++;
alert(printer); //Prints 0
値をインクリメントしてから別の変数に格納したい場合、1行のコードでそれを実行できないのはなぜですか?
これは動作します
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ページのJavaScriptArithmeticOperatorsセクションには、TryMeラボでまともな内訳があります。つまり、変数の前にインクリメント/デクリメント操作を行うと、現在の操作で使用される前に発生します。後で含めると、現在の操作の後に発生します。
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
++
使用する場所に応じて結果を変更します。
y = 0;
x = y++; // post-increment
と同等です
y = 0;
x = y;
y = y + 1;
と
x = ++y; // pre-increment
と同等です
y = 0;
y = y + 1;
x = y;