JavaScriptにおけるプレフィックス型とポストフィックス型

実際には、インクリメントとデクリメントの演算は 二通りの方法で記述できます。まずは++を例にして これらの方法を見てみましょう。--についても すべて同様です。

最初の方法では、演算は変数名の後に記述されます。 このように:a++。二つ目の方法では、 変数名の前に記述されます。このように:++a。

最初の形式はポストフィックス、 二つ目はプレフィックスと呼ばれます。 これら二つの形式の違いが現れるケースを見てみましょう。

alert(a++)というコードと alert(++a)というコードがあるとします。

alert(a++)の場合、変数はまず 表示された後、1だけ増加します。 一方、alert(++a)の場合、変数はまず 1だけ増加し、その後表示されます。

次の例では、最初のalertは 0を出力します。なぜなら、最初に画面への出力が行われ、 その後で変数が増加するからです:

javascriptlet num = 0;
alert(num++); // 0を出力
alert(num);   // 1を出力

今度は、変数が最初に増加し、 その後で画面に出力されます:

javascriptlet num = 0;
alert(++num); // 1を出力 - 変数は直ちに増加しました

この動作は、画面への出力だけでなく、 代入に対しても有効です:

javascriptlet num1 = 0;
let num2 = num1++; // 変数num2には0が書き込まれます
alert(num2); // 0を出力
alert(num1); // 1を出力 - 変数num1はnum2への書き込み後に変更されました

次に、ポストフィックス形式をプレフィックス形式に変えてみましょう:

javascriptlet num1 = 0;
let num2 = ++num1; // 変数num2には1が書き込まれます
alert(num2); // 1を出力

演算が独立した行で実行される場合、 プレフィックス形式とポストフィックス形式の間に 違いはありません:

javascriptlet num = 0;
++num;
num++;
alert(num); // 2を出力
Задание 1

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num = 3;
alert(++num);
Задание 2

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num = 3;
alert(num++);
Задание 3

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num = 3;
alert(--num);
Задание 4

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num = 3;
alert(num--);
Задание 5

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Задание 6

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Задание 7

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Задание 8

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Задание 9

コードを実行せずに、画面に何が表示されるか 判断してください:

javascriptlet num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);