この投稿は、この記事の簡易版のようなものです:JavaScript 'for'ループの実行順序は?
What is the exact order of execution of Javascript's for loop?
私はforループでの作業中に混乱して得続ける理由でスーパー興味があります。私はどのようにforループがフードの下で実行されるのかを知りたい。だから、
for (let i = 0; i < 10; i++) {
alert(i);
};
私の理解から、これは私の知る限り、このような何かが実行される順序を理解する上で取得するようです:
1)エンジンがi = 0
2を初期化)エンジンをチェックi < 10
3)というエンジンは、文
のために保持する括弧の飛び出し4)エンジンは、エンジンがi
、
6をインクリメントするバック括弧にポップ)この反復
5ためにループ内のコードを実行する)ステップ2.
から繰り返し私は私は推測ほとんどのステップ#3について混乱しています。ブロック内のコードを実行するためにエンジンが実際に 'for'ループから飛び出しますか?
私の理解から、JavaScriptはシングルスレッドであり、同期的にしか動かすことができないので、 'for'ステートメントの途中でエンジンが 'for' .... 'for'ループの3つの条件のそれぞれは、それらの独自の独立したコマンドであり、ブロック内のコマンドに移る前に実行して終了することができます。
私はこの質問を正しく聞いているかどうかはまだ分かりませんが、私はまだ比較的プログラミングに新しいです、私はこの時点でバニラJSを知っています...来月はノードに入る時です)
はそれを考え出した:私は順序は次のように行くことを学びました Click for an image of my breakpoint placement
: 1)var i
が0
2)var i
に初期化されtruthyのためにチェックされています実行が終了すると、i
をインクリメント
5)一つインクリメントする
4)真、コードが実行される場合
3)、i
はtruthy
6)繰り返しは3ステップのためにチェックされます - 5までi
は偽です
7)反復が終了しました。
ありがとうございました。 Chromeデバッガは、私が思ったよりもはるかに強力です!
括弧の外にある_pops以外_次の行にむしろ_あなたの質問は何ですか? – Lixus
「ポップアウト」とは何を意味するのかわかりません。かっこは、コードの構文上の構造化にのみ関連し、実際に実行されるものとは関係ありません。 "* forループの3つの条件のそれぞれは、それら自身の独立したコマンドであり、実行することができます*"は正確にポイントです。 – Bergi
この場合、 'i'のスコープは中括弧ブロックの内側にあります。ところで、古い 'var'キーワードを使用する場合、' for'ループの周りに関数がない場合、 'i'は周囲の関数またはウィンドウのスコープにあります –