JavaScriptでは、変数名の++
前(pre-increment)または変数名(post-increment)の後に演算子を使用できます。変数をインクリメントするこれらの方法の違いは何ですか?
JavaScriptでは、変数名の++
前(pre-increment)または変数名(post-increment)の後に演算子を使用できます。変数をインクリメントするこれらの方法の違いは何ですか?
回答:
他の言語と同じ:
++x
(プリインクリメント)は、「変数をインクリメントします。式の値は最終値です」x++
(ポストインクリメント)は、「元の値を記憶してから変数をインクリメントします。式の値は元の値です」スタンドアロンステートメントとして使用すると、同じ意味になります。
x++;
++x;
違いは、式の値を他の場所で使用する場合です。例えば:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
代わりに使用した場合、これはどのように見えます++
か?数値を追加する前または後にインクリメントする方法はありますか?
x
が10から始まる場合、の値r1
は21で、10 + 11です。最初の値はx++
式10であり、x
第二の値が11にインクリメントされるx++
式11とx
12にインクリメントされる
++x
値をインクリメントし、評価して保存します。x++
値を評価し、それを増分して格納します。var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
++x
変数を読み取って変更し、評価して保存するため、可能な場合は使用することでパフォーマンスにわずかな利点があることに注意してください。x++
値を読み取り、評価し、変更してから保存する演算子と比較してください。
私が理解しているように、スタンドアロンで使用すると、同じことを実行します。それらの結果を式として出力しようとすると、異なる場合があります。違いを確認するには、alert(++ i)と比較してalert(i ++)を試してください。i ++は加算前にiと評価され、++ iは評価前に加算されます。
例については、http://jsfiddle.net/xaDC4/を参照してください。
ポストインクリメントとプレインクリメントの理解について説明しました。ここに入れます。
に割り当てましょ0
うx
let x = 0;
ポストインクリメントから始めましょう
console.log(x++); // Outputs 0
どうして?
x++
式を分解しましょう
x = x;
x = x + 1;
最初のステートメントは次の値を返します x
あります0
そして後で使うとき x
変数をどこかで、2番目のステートメントが実行されます
2番目のステートメントは、このx + 1
式の値を返します。(0 + 1) = 1
x
この状態での価値を覚えておいてください1
ここで、プリインクリメントから始めましょう
console.log(++x); // Outputs 2
どうして?
++x
式を分解しましょう
x = x + 1;
x = x;
最初のステートメントは、このx + 1
式の値を返します。(1 + 1) = 2
2番目のステートメントは、値を返すx
となる2
ので、x = 2
したがってリターンを2
これがポストインクリメントとプレインクリメントとは何かを理解するのに役立つことを願っています!