본문 바로가기

javascript/basic

javascrpt - 내장 함수 [타이머 함수②]

타이머 함수의 실행 순서와 반복문의 콜백함수


이번에는 자바스크립트 코드의 실행순서를 알아보려한다.

간단한 코드면 괜찬겠지만 코드가 길어지거나 복잡해지면

문제가 생길 수 있기 때문에 이해하고 넘어가야 된다.

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를 넣어줘야 멈출 수 있다.