回答編集履歴

1

コメントを受け追記

2019/04/05 02:53

投稿

moredeep
moredeep

スコア1507

test CHANGED
@@ -21,3 +21,37 @@
21
21
  console.log(values)
22
22
 
23
23
  ```
24
+
25
+
26
+
27
+ ---
28
+
29
+ コメントを受け追記
30
+
31
+
32
+
33
+ イベント云々ではなくconsole.logか開発者コンソールの仕様だと思います。例えば下記を実行した場合、setTimeoutの中の処理が実行される前(10秒以内)に中身を確認すると先二つの値は[1,0]となっています。
34
+
35
+ しかしsetTimeoutの中の処理が実行された後に(10秒以上後)に"初めて"中身を確認すると、3つとも[1,1]になっています。(chromeで確認)
36
+
37
+ ```
38
+
39
+ var test = [[0,0,0]];
40
+
41
+ console.log(test);
42
+
43
+ test[0][0] = 1;
44
+
45
+ console.log(test);
46
+
47
+ setTimeout(function(){
48
+
49
+ test[0][1] = 1;
50
+
51
+ console.log(test);
52
+
53
+ }, 10000);
54
+
55
+ ```
56
+
57
+ 何かの仕様でこうなっているというような記述を見つけることが出来ませんでしたが、こうしないと巨大なデータをログ出力したらしょっちゅう固まるでしょうし、妥当なんじゃないかなと思います。