質問編集履歴

2

誤字

2018/12/18 00:32

投稿

nico25
nico25

スコア830

test CHANGED
File without changes
test CHANGED
@@ -78,23 +78,23 @@
78
78
 
79
79
 
80
80
 
81
- // CodePen だと empty ではなく undefined と表示されてしまう。
81
+ // 1) CodePen だと empty ではなく undefined と表示されてしまう。
82
82
 
83
- // console.log(array1);
83
+ // console.log(array1);
84
84
 
85
- // -> [undefined, undefined, undefined]
85
+ // -> [undefined, undefined, undefined]
86
86
 
87
87
 
88
88
 
89
- // empty は、存在しない。
89
+ // 2) empty は、存在しない。
90
90
 
91
- // console.log(empty);
91
+ // console.log(empty);
92
92
 
93
- // -> Uncaught ReferenceError: empty is not defined
93
+ // -> Uncaught ReferenceError: empty is not defined
94
94
 
95
95
 
96
96
 
97
- // empty は null とも違いそう。
97
+ // 3) empty は null とも違いそう。
98
98
 
99
99
 
100
100
 
@@ -104,13 +104,11 @@
104
104
 
105
105
 
106
106
 
107
- // 挙動
107
+ // 4) インデックスを指定して empty を取得しようとすると
108
108
 
109
- // インデックスを指定して empty を取得しようとす
109
+ // empty が undefined にな
110
110
 
111
- // empty が undefined になる。
112
-
113
- // このとき厳密等価演算は true になる。
111
+ // このとき undefined との厳密等価演算は true になる。
114
112
 
115
113
  console.log(array1[0]); // undefined
116
114
 
@@ -148,7 +146,7 @@
148
146
 
149
147
  // 結果 map の結果も異なる。
150
148
 
151
- console.log(array1.map(()=>3)); // [undefined, undefined, undefined]
149
+ console.log(array1.map(()=>3)); // [empty, empty, empty]
152
150
 
153
151
  console.log(array2.map(()=>3)); // [3, 3, 3]
154
152
 
@@ -166,10 +164,10 @@
166
164
 
167
165
  // 以下のようになる。
168
166
 
169
- console.log(array1); // [0, undefined, 2]
167
+ console.log(array1); // [0, empty, 2]
170
168
 
171
169
  console.log(Object.keys(array1)) // => [0, 2]
172
170
 
173
- console.log(array2.map(()=>3)); // [3, undefined, 3]
171
+ console.log(array1.map(()=>3)); // [3, empty, 3]
174
172
 
175
173
  ```

1

ご指導いただいた内容を元に追記

2018/12/18 00:32

投稿

nico25
nico25

スコア830

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,129 @@
47
47
  何か参考になるページ等ご教示いただけましたら、幸いでございます。
48
48
 
49
49
  どうぞ、よろしくお願いいたします。
50
+
51
+
52
+
53
+ ---
54
+
55
+ ご回答いただき、誠にありがとうございます。
56
+
57
+ ご指導いただいた内容を元に再度整理いたしまいた。
58
+
59
+
60
+
61
+ 上記は CodePen での実行結果
62
+
63
+ 以下は Chrome での実行結果
64
+
65
+ ```js
66
+
67
+ var array1 = Array(3); // new Array(3); と等価
68
+
69
+ var array2 = Array.apply(null, Array(3));
70
+
71
+
72
+
73
+ //
74
+
75
+ console.log(array1); // [empty, empty, empty ]
76
+
77
+ console.log(array2); // [undefined, undefined, undefined]
78
+
79
+
80
+
81
+ // CodePen だと empty ではなく undefined と表示されてしまう。
82
+
83
+ // console.log(array1);
84
+
85
+ // -> [undefined, undefined, undefined]
86
+
87
+
88
+
89
+ // empty は、存在しない。
90
+
91
+ // console.log(empty);
92
+
93
+ // -> Uncaught ReferenceError: empty is not defined
94
+
95
+
96
+
97
+ // empty は null とも違いそう。
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+ // 挙動
108
+
109
+ // インデックスを指定して empty を取得しようとすると
110
+
111
+ // empty が undefined になる。
112
+
113
+ // このとき厳密等価演算は true になる。
114
+
115
+ console.log(array1[0]); // undefined
116
+
117
+ console.log(array2[0]); // undefined
118
+
119
+ console.log(array1[0] === array1[1]); // true
120
+
121
+
122
+
123
+ // 配列の型も
124
+
125
+ console.log(typeof(array1)); // object
126
+
127
+ console.log(typeof(array2)); // object
128
+
129
+
130
+
131
+ // その中の要素の型も同じ
132
+
133
+ console.log(typeof(array1[0])); // undefined
134
+
135
+ console.log(typeof(array2[0])); // undefined
136
+
137
+ console.log(typeof(array1[0]) == typeof(array2[0])) // true
138
+
139
+
140
+
141
+ // keys は異なる
142
+
143
+ console.log(Object.keys(array1)) // => []
144
+
145
+ console.log(Object.keys(array2)) // => [0, 1, 2]
146
+
147
+
148
+
149
+ // 結果 map の結果も異なる。
150
+
151
+ console.log(array1.map(()=>3)); // [undefined, undefined, undefined]
152
+
153
+ console.log(array2.map(()=>3)); // [3, 3, 3]
154
+
155
+
156
+
157
+ /* ここで... */
158
+
159
+ // ここで次のようにすると
160
+
161
+ array1[0] = 0;
162
+
163
+ array1[2] = 2;
164
+
165
+
166
+
167
+ // 以下のようになる。
168
+
169
+ console.log(array1); // [0, undefined, 2]
170
+
171
+ console.log(Object.keys(array1)) // => [0, 2]
172
+
173
+ console.log(array2.map(()=>3)); // [3, undefined, 3]
174
+
175
+ ```