타이머 함수의 실행 순서와 반복문의 콜백함수
이번에는 자바스크립트 코드의 실행순서를 알아보려한다.
간단한 코드면 괜찬겠지만 코드가 길어지거나 복잡해지면
문제가 생길 수 있기 때문에 이해하고 넘어가야 된다.
1 2 3 4 5 6 7 | <script> alert("A"); settimeout(function(){ alert("B"); },0); alert("C") </script> | cs |
A → C → B 순으로 실행이 된다.
왜 이렇게 되는걸까
책에는 이렇게 나와있다
'자바스크립트의 함수 중에는 웹 브라우저에 처리를 부탁하는 함수가 있다. 대표적으로 타이머 함수와 웹 요청은 웹 브라우저가 처리하고 처리가 완료되었다는 것을 자바스크립트에 알려주는 방식'
뭔 소린지 잘 모르겠다...
적절한 쉬운 예를 들어주고있다.
택배가 집에 와도 일하는 동안에는 확인할 수 없는 것과 같다.
일을 마치고 집에 와야 택배를 확인할 수 있다.
alert("A"),alert("C") == 일
setTimeout == 집
alert("B") == 택배
이해가 될듯 안될듯??ㅋㅋ
1 2 3 4 5 6 | <script> setTimeout(function(){ alert('set Timeout'); }, 0); while (true){ } </script> | cs |
만약 이 위와 같이 한다면 영원히 setTimeout을 볼 수 없을것이다...
while문에 조건을 true을 주면 while문은 영원히 실행되기 때문이다~
저걸막으려면 while문 안에 break를 넣어줘야 멈출 수 있다.