http://ife.baidu.com/course/d...
私は Baidu Front-End Academy からの質問に取り組んでいます。リンクは上記のとおりです。トピックは、バイナリ ツリー トラバーサルの実装です。 js コードは次のとおりです:
リーリー
コードにエラーはありませんが、setTimeout の時間に timer =100 が使用される理由が理解できません?
100 を直接使用できないのはなぜですか?
困惑しています。フロントエンド初心者さん、アドバイスお願いします!
このコードの意味は、通過したノードが最初に赤で表示され、次に白で表示され、その後次のノードに続くということです。
setTimeout(xxx,100)なぜ 100 ではなく +=100 なのでしょうか?
今のところは非同期を無視します。簡単に言うと
関数の実行にはほんの一瞬しかかからず、走査は完了しています: 関数の実行時点が 0 秒の場合、すべての setTimeout(xxx, 100) は 0.1 秒後になります (タスク キューに追加され、実際の実行の詳細が表示されます)。時間は必ずしも 0.1 秒まで正確であるとは限りませんが、これは重要ではないため、括弧を理解する必要はありません。後でわかります。 )
setTimeout()が一瞬で完了するということです(jsは何もしない感じです)
すると、+=100
は
setTimeout(xxx,200)
setTimeout(xxx,300) を意味します.... これらは約 0.1 秒ごとに実行されます
別の穴を開けて、後で埋めます
timer+=100 は、一定の時間間隔を保持し、明らかな効果を持つノード トラバーサルのプロセスを確認できるようにするためかもしれません。