回答編集履歴
2
let、const宣言ではできないことの強調と、var宣言は今後あまり使わない方がいいことを追記
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
```
|
14
14
|
こうすることによって、ルートに宣言されるため、
|
15
15
|
`num1`などの変数名のみで呼び出せます。
|
16
|
-
(`let`ならびに`const`での宣言は、ルートでの宣言であっても、`window`オブジェクトのプロパティとはならない)
|
16
|
+
(`let`ならびに`const`での宣言は、ルートでの宣言であっても、`window`オブジェクトのプロパティとはならない。つまり、上記の宣言の仕方はできない)
|
17
17
|
|
18
18
|
# Object.definePropertyを使う方法
|
19
19
|
これは、第一引数のオブジェクトのプロパティとして、定数(constで定義したと同じような仕様の変数)を定義するものです。
|
@@ -30,5 +30,6 @@
|
|
30
30
|
}
|
31
31
|
```
|
32
32
|
|
33
|
-
ただし、上記はいずれも、`var`宣言を使う、スコープ汚染をさせやすい宣言の仕方
|
33
|
+
ただし、上記はいずれも、`var`宣言を使う、スコープ汚染をさせやすい宣言の仕方であるなど、仕様的に様々な面で虚弱になるため、
|
34
|
+
(上記いずれも、`let`、`const`での変数宣言とはならない)
|
34
|
-
やるべきではないと個人的には思います。
|
35
|
+
今後はやるべきではないと個人的には思います。
|
1
var宣言時も、ルートに宣言されることを追記など、全体的に間違っている部分を修正
answer
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
jQueryの質問タグがあることから、ウェブブラウザ実行のJSとします。
|
4
4
|
|
5
5
|
# windowオブジェクトのプロパティとして定義
|
6
|
-
ウェブブラウザの場合、すべての変数は、
|
6
|
+
ウェブブラウザ実行の場合、すべての変数は、
|
7
|
-
|
7
|
+
`var`で宣言している、宣言子を使わないで変数宣言している場合、`window`オブジェクトのプロパティとして宣言されるので、
|
8
8
|
`[]`を使い、プロパティ名に文字列を使います。
|
9
9
|
```javascript
|
10
10
|
for (var i = 0; i < 10; i++) {
|
@@ -13,6 +13,7 @@
|
|
13
13
|
```
|
14
14
|
こうすることによって、ルートに宣言されるため、
|
15
15
|
`num1`などの変数名のみで呼び出せます。
|
16
|
+
(`let`ならびに`const`での宣言は、ルートでの宣言であっても、`window`オブジェクトのプロパティとはならない)
|
16
17
|
|
17
18
|
# Object.definePropertyを使う方法
|
18
19
|
これは、第一引数のオブジェクトのプロパティとして、定数(constで定義したと同じような仕様の変数)を定義するものです。
|
@@ -27,5 +28,7 @@
|
|
27
28
|
value: i // 値
|
28
29
|
});
|
29
30
|
}
|
31
|
+
```
|
30
32
|
|
33
|
+
ただし、上記はいずれも、`var`宣言を使う、スコープ汚染をさせやすい宣言の仕方のため、
|
31
|
-
|
34
|
+
やるべきではないと個人的には思います。
|