質問編集履歴
1
a
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,4 +22,35 @@
|
|
22
22
|
|
23
23
|
どなたか優しい人、内部でどういう風になってるか1つ1つ分解して説明してほしいです。
|
24
24
|
初歩的な質問で申し訳ございません。
|
25
|
-
よろしくお願いいたします。
|
25
|
+
よろしくお願いいたします。
|
26
|
+
|
27
|
+
#追記(2021.8.18)
|
28
|
+
|
29
|
+
色々な方に回答いただき、自分なりに理解したことを以下の通りまとめます。
|
30
|
+
```
|
31
|
+
//前提:インクリメントがある度に1は加算される。なので例えばインクリメントが10個あったら10加算される
|
32
|
+
|
33
|
+
//前置インクリメント:1を加算し、その後も1を評価する
|
34
|
+
//後置インクリメント:1を加算するが、その後は1を評価しない
|
35
|
+
|
36
|
+
|
37
|
+
let x = 2;
|
38
|
+
console.log(x++ + x++) //5
|
39
|
+
//最初のx++に2+1が入り、後置インクリメントなので、+1が評価されず、計算後は2となる。結果の3が次のx++に入る
|
40
|
+
//次のx++は前のx++の3が入り、3+1となる。後置インクリメントなので+1が評価されず、計算後は3となる。結果の4が次のx++に入る。
|
41
|
+
|
42
|
+
console.log(++x + ++x) //11
|
43
|
+
//x++に前の4が入り、4+1。前置インクリメントなので+1を評価し、5となる。
|
44
|
+
//次のx++に5が入り、5+1、前置インクリメントなので+1を評価し、6となる。
|
45
|
+
|
46
|
+
console.log(x++ + ++x) //14
|
47
|
+
//前の数字がなので6、6+1、後置インクリメントなので+1を評価しないので結果は6となる。
|
48
|
+
//前の数字が7なので7+1、前置インクリメントなので8となる。
|
49
|
+
|
50
|
+
console.log(++x + x++) //18
|
51
|
+
//上の3つの式と同じ感じ
|
52
|
+
|
53
|
+
console.log(x) //10
|
54
|
+
//インクリメント(x++)が8回宣言されたので2+8
|
55
|
+
|
56
|
+
```
|