3
を使用する場合は、次のコードは、私がFirefoxの52スクラッチパッドでそれを実行し、エラーを生成します。スコーピングの問題Firefoxのスクラッチパッドにしましょう
function scope() {
let x = 1;
}
let x = 2;
/*
Exception: SyntaxError: redeclaration of let x
@Scratchpad/8:1:1
*/
ことを説明するためにどのように?最初のx
は関数にカプセル化し、2番目の宣言に干渉しないようにする必要があります。
このコードをChromeでスニペットとして実行するか、またはFirefoxで<script>
タグを含むHTMLページ内で実行しても例外は発生しません。関数内にラップするか、さらには{}
のペアをラップすることで問題は解決されます。
Scratchpadのバグではありますか?
意味があります。ありがとうございました! –
さらに、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/deleteで宣言した変数を削除することはできません。 –
これは多かれ少なかれこの質問の重複です... http://stackoverflow.com/questions/36398258/typeerror-redeclaration-of-let-error-in-firebug-console-if-running-es6-コード –