最初の質問: これは js の知識のどの部分に属しますか?
2 番目の質問: なぜ i が 5 に等しいのか、わかりやすく説明してください。
0o0
PHP中文网2017-06-12 09:31:37
この問題はクロージャですか? クロージャではないと思います、そして関数の入れ子はありません それは関数ローカル変数と匿名関数の問題です。 匿名関数を作成してすぐに実行する場合、クロージャは含まれません。これは、ループ
(5.) を終了するだけです。
i
的值变成 5
退出循环, console.log(i)
打印当前的 i
これは次と同等です:
怪我咯2017-06-12 09:31:37
これは、js にはブロックレベルのスコープがなく、関数スコープのみがあることが原因で発生する問題です。 。 。 Juはクロージャーを直接引くことができます。 。 。受け入れます。 。 。
伊谢尔伦2017-06-12 09:31:37
JavaScript にはブロックレベルのスコープのようなものはないため、for ループ {} と if ステートメント {} 内の変数には外部からアクセスできます。
スコープはグローバルスコープとローカルスコープに分かれています
グローバル スコープは、ドキュメントの作成時にシステムによって組み込まれます。
ローカルスコープは関数を作成することで実現されます。
ringa_lee2017-06-12 09:31:37
js のクロージャーについて知っておくべきです
console.logが実行されるとforループの実行が完了するので、当然iは5になります