teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

a

2021/08/17 23:59

投稿

Hinoarashi.
Hinoarashi.

スコア76

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
+ ```