JavaScriptのletとvarの使い方についての記事を読んで、 "var"キーワードを使って宣言した変数(forループの中でさえ)は、だから、1つの関数で複数のforループを作ることがなぜ可能なのですか?それぞれは次のようになります。for (var i = 0; i < array.length; i++);
JavaScriptはi変数を "再宣言"しても問題ありません。それが許可されている同じ変数の複数の宣言を意味し、それらが囲む機能範囲に移動してしまった、巻き上げを可能と感謝:)JavaScript letとvarの使い方
0
A
答えて
1
複雑な答えで一見小さな質問です。 var
は古いメソッド宣言です。どこでも何度でも宣言することができます。 JavaScriptは気にしません。宣言は関数のコードの先頭に移動するため、宣言された変数はすべてすぐに使用できます。これは巻上げと呼ばれています。
let
は、変数を宣言する新しい方法です。 const
が存在しますが、今はそのことに興味がありません。 let
はブロックスコープです。 let
の背後にあるルールとスコープは混乱する可能性がありますが、理解して理解することは有益です。 JavaScriptの未来です。私はブログの記事hereでそれについて徹底的に話します。
2
JSはvar
のための特別なケースがあります。しかし、それらは依然として同じ変数です。
function foo(){
for(var i=0; i<3; i++){
console.log("x");
}
for(var i;i<6;i++){
console.log("y");
}
}
foo()
注意が第二のループにおけるIのない初期化されていないが、それは細かい実行し、3 x
及び3 y
を生成する次のコードを検討します。これまでは古いブラウザでは問題になっていましたが、新しいブラウザではエラーが発生しなくなりました。
関連する問題
- 1. letとvarの違い
- 2. Chromeコンソール: 'let'と 'var'の違いは?
- 3. Lazy Var vs Let
- 4. グローバルスコープのVAR対LET
- 5. Swiftの 'let'や 'var'の使い方を理解するには?
- 6. setTimeoutの中のletとvarの違いは?
- 7. javascriptでletの代わりにvarを使う理由は何ですか?
- 8. Typescriptのvarとletの違いは何ですか?
- 9. Javascriptで `var`を` let`に置き換えない理由はありますか?
- 10. varとlet変数を同じ名前で使用していますか?
- 11. Swiftのコレクションを反復する:varとlet
- 12. TypeScriptで「var」、「let」、「const」を使用する場合
- 13. let定数として扱われる静的なvar?
- 14. 'letと' var 'はTypescriptで同じですか?
- 15. Property Let for Arraysの使い方は?
- 16. いつvarまたはletを角2で使うべきですか?
- 17. javascriptのvsとvarの違い
- 18. キーワード `let`または` var`を追加するとコードがコンパイルできない
- 19. Swiftプロトコル拡張 `var {get}`オーバーライド実装の `let`
- 20. Javascript ES6 export const vs export let
- 21. javascript varとgoogle maps api json
- 22. Swift - letの場合の使用方法
- 23. swiftで変数を初期化せずにvar/let
- 24. letまたはvarキーワードでクラスオブジェクトを作成しますか?
- 25. Swift - Guard-letをlet-letとしましょう
- 26. TSlint: 'let'と 'const'が禁止された 'var'キーワードエラーを引き起こします
- 27. JavaScriptの定数var
- 28. Javascript var hoisting issue
- 29. Javascript var case sensitive
- 30. Javascript var = int || int?
JavaScriptでは、 'var'で宣言された変数を再宣言できます。 – 4castle
また、変数スコープを読み上げることもできます。 – fubar
@ 4castleそれは本当ではないです。あなたは今すぐ再割り当てを考えています。 'let'を使って割り当てられた変数の値を変更することはできますが、再宣言することはできません。 – Andrew