2016-10-15 26 views
4

Javascriptで私の長老たちのための質問: let has a different variable scope than var doesを脇に置いて、ほとんどの場合、varlet以上に使う理由はないようです。もちろん、ifステートメントの内部で変数を定義する場合、同じことではありませんが、もう一方のスコープを使用する別の理由がありますか?Javascriptで `var`を` let`に置き換えない理由はありますか?

編集:明確にするために、この質問はvarlet間の違いの性質についてのJavascript、で最高pratice(すなわち、長所と短所)ではないについてです。

ありがとうございます!

+2

@jedi、いいえ、この1つは異なって常にoverreactive –

+2

重複ファインダー:D –

+0

http://stackoverflow.com/questions/762011/let-keyword-vs-var-keyword-in-javascript – abhirathore2006

答えて

5

いいえ、理由はありません。私が読んだところでは、下位互換性のためにvarが残っています。ほとんどの記事では、varの出現をすべて徐々にletに置き換えるようにアドバイスしています。もちろん、これはあなたがifブロックで言及したような違いを考慮して行われるべきです。今私のES6コードではletしか使用していません。 Eric Elliott doesn't use var too.varを使用しているものはありません。letはうまくできません。関数スコープ全体が必要な場合は、関数の先頭にletを作成します。

は、私が気づいた1差はグローバルスコープで変数を定義する際にletを持つ変数はwindowオブジェクトを使用してアクセスすることはできませんが、varとして定義された変数は、window.variableでアクセスしていることです。しかし、適切な記述されたモジュールコードでは、varステートメントはwindowにリークすることが許されないので、これは重要ではありません。

可変参照が変更されない場合は、letの代わりにconstを使用することもお勧めします。

関連する問題