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

回答編集履歴

2

分割代入

2021/09/19 10:43

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,16 +1,16 @@
1
1
  ### グローバル変数
2
2
 
3
3
  `const` で定義された変数は**グローバル変数ではありません**。
4
- グローバルオブジェクトのプロパティに存在する変数をグローバル変数といいます。
4
+ グローバルコードで変数定義行った場合、`var` ではグローバル変数の上書きが発生しますが、`const` では発生しません
5
5
 
6
6
  ```HTML
7
7
  <script>
8
8
  'use strict';
9
+ var name = 'foo';
9
- const foo = 1;
10
+ const length = 1;
11
+
10
- var bar = 2; // グローバル変数
12
+ console.log(name, this.name); // "foo" "foo"
11
-
12
- console.log(window.foo); // undefined
13
+ console.log(length, this.length); // 1 0
13
- console.log(window.bar); // 2 (グローバル変数)
14
14
  </script>
15
15
  ```
16
16
 
@@ -29,6 +29,16 @@
29
29
  const archiveFolderId = createArchiveFolderId();
30
30
  ```
31
31
 
32
- 従って、一つの関数から、複数の「const定義された変数」を初期化する出来せん
32
+ 一つの関数から、複数の「const定義された変数」を初期化する[分割代入](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)を使用し
33
33
 
34
+ ```JavaScript
35
+ 'use strict';
36
+ function createFolder () {
37
+ return [1,2,3,4,5];
38
+ }
39
+
40
+ const [sourceFolderId, articleFolderId, nonReviewedArticlesFolderId, imageFolderId, archiveFolderId] = createFolder();
41
+ console.log(sourceFolderId, articleFolderId, nonReviewedArticlesFolderId, imageFolderId, archiveFolderId); // 1 2 3 4 5
42
+ ```
43
+
34
44
  Re: Junkak さん

1

一つの関数から、複数の「const定義された変数」を初期化する事は出来ません

2021/09/19 10:43

投稿

think49
think49

スコア18194

answer CHANGED
@@ -29,4 +29,6 @@
29
29
  const archiveFolderId = createArchiveFolderId();
30
30
  ```
31
31
 
32
+ 従って、一つの関数から、複数の「const定義された変数」を初期化する事は出来ません。
33
+
32
34
  Re: Junkak さん