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

回答編集履歴

2

情報の追加。

2020/05/19 05:11

投稿

kei344
kei344

スコア69625

answer CHANGED
@@ -14,4 +14,5 @@
14
14
  ---
15
15
 
16
16
  【let - JavaScript | MDN】
17
- [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone)
17
+ [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone)
18
+ > 変数を宣言より前で参照すると ReferenceError が発生します。

1

情報の追加。

2020/05/19 05:11

投稿

kei344
kei344

スコア69625

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  既に回答があるとおり、定義していない変数を使用しているからです。
2
- ただ、そもそもなぜ同じスコープ内で`const timerId`しているかがわかりません。多重に`setTimeout`をしないためなら、ひとつ上のスコープで`const timerId`する必要があるのでは。(コードは特に読んでいないので何か必要があってのことなのでしょうか)
2
+ ただ、そもそもなぜ同じスコープ内で`const timerId`しているかがわかりません。多重に`setTimeout`をしないためなら、ひとつ上のスコープで`const timerId`する必要があるのでは。(コードは特に読んでいないのですが、何か必要があってのことなのでしょうか)
3
3
  ```js
4
4
  'use strict';
5
5
  clearTimeout(timerId);
@@ -9,4 +9,9 @@
9
9
  /* @Firefox
10
10
  ReferenceError: can't access lexical declaration `timerId' before initialization _display:38:1
11
11
  */
12
- ```**動くサンプル:**[https://jsfiddle.net/dxg3aof9/](https://jsfiddle.net/dxg3aof9/)
12
+ ```**動くサンプル:**[https://jsfiddle.net/dxg3aof9/](https://jsfiddle.net/dxg3aof9/)
13
+
14
+ ---
15
+
16
+ 【let - JavaScript | MDN】
17
+ [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone)