回答編集履歴

2

追記

2016/09/14 11:56

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36115

test CHANGED
@@ -29,3 +29,9 @@
29
29
  ```
30
30
 
31
31
  を実行すると、`[0,1,2,3,4,5,[3,4,5]]`になります。lengthが7になるので、戻り値は7です。
32
+
33
+  
34
+
35
+ #####要素になるというのは、入れ子になってしまうということですか
36
+
37
+ そうです。

1

追記

2016/09/14 11:56

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36115

test CHANGED
@@ -1,3 +1,31 @@
1
+ #####これらがいったいなにを指しているのか
2
+
1
3
  > 戻り値として新しい配列の**要素数**を返します。
2
4
 
3
5
  [Array.prototype.push() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/push)
6
+
7
+
8
+
9
+  
10
+
11
+ #####なぜ違う値が返ってきたのでしょうか
12
+
13
+ 効果が破壊的だからです。
14
+
15
+ つまり、
16
+
17
+ ```javascript
18
+
19
+ var superArr = Array.prototype.push.apply(arr1,arr2);
20
+
21
+ ```
22
+
23
+ を実行した時点で、`arr1`は`[0,1,2,3,4,5]`になっていますので、
24
+
25
+ ```javascript
26
+
27
+ var superArr2 = arr1.push(arr2);
28
+
29
+ ```
30
+
31
+ を実行すると、`[0,1,2,3,4,5,[3,4,5]]`になります。lengthが7になるので、戻り値は7です。