http://ife.baidu.com/course/d...
바이두 프론트엔드 아카데미에서 질문을 드리고 있는데 링크는 위에 있습니다. 주제는 이진 트리 탐색을 구현하는 것입니다. JS 코드는 다음과 같습니다.
코드에는 오류가 없는데 왜 setTimeout의 시간에 타이머+=100을 사용하는지 이해가 안 가나요?
100을 직접 사용할 수 없는 이유는 무엇인가요?
궁금해요. 프론트엔드 초보자분들 조언 부탁드려요!
代言2017-07-05 10:44:09
이 코드의 의미는 통과한 노드가 처음에는 빨간색으로 표시되고 그 다음에는 흰색으로 표시되고 다음 노드로 계속 표시된다는 것입니다.
간격은 0.1초입니다.
왜 100이 아니라
무시합니까? , 간단히 말하면
함수 실행에는 몇 분밖에 걸리지 않으며 순회가 완료되었습니다. 함수 실행 시점이 0초이면 모든 setTimeout(xxx, 100)은 0.1초 후에 있을 것입니다(작업 큐에 추가됨, 실제 실행 세부 사항 시간은 반드시 0.1초로 정확하지는 않지만 이것이 요점이 아니므로 괄호를 이해할 필요는 없습니다. 나중에 알게 될 것입니다) )
모든 setTimeout()이 즉시 완료된다는 뜻입니다(js가 아무 것도 하지 않을 것 같은 느낌입니다)
그러면 +=100
setTimeout(xxx,100)
setTimeout(xxx,200)
setTimeout(xxx,300)을 의미합니다.... 이는 0.1초 정도마다 실행됩니다
또 다른 구멍을 뚫고 나중에 메우세요