なぜ if 文が実行されるかわかりません

2017年11月6日
ユーザー

以下のコードにおいて、

function show() {
    console.log(i++);
    var tid = setTimeout(function() {
        show();
    }, 1000);
    if (i > 3) {
        clearTimeout(tid);
    }
}

4行目の show() によって関数 show が再度実行されるのは分かるのですが、そうなると6行目の if 文にたどり着く前に show が改めて最初から実行されてしまい、 if 文にたどり着けないような気がします。なぜ if 文が実行されるのかを教えてください。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?