[Web] 14. window 객체의 메소드
- window 객체
window 객체에는 다양한 메서드가 존재한다. 그 중 setTimeout에 대해 알아보자!
다른함수들과는 조금 다르게 동작하는 setTimeout은 인자로 함수를 받고 호출되고 바로 실행되지 않는 '콜백함수'이다.
function run() {
console.log("run start")
setTimeout(function(){
var msg = "hello codesquad";
console.log("run ...ing");
},1000);
console.log("run end");
}
run();
이 코드의 결과는 run start > run end > run ...ing 순으로 출력된다.
자바스크립트에서 함수는 call stack으로 작동된다는 것을 배웠는데, 비동기 call back 함수의 경우 event queue 에 저장되어있다가 stack이 모두 비워지고 나서 마지막에 실행된다.
setTimeout의 경우 위의 1000 은 1000ms 즉 1초 후에 함수를 실행하는 메소드이다. 다른 비동기식 함수들도 많으므로 찾아보면 좋다. 비슷한 메서드로 setInterval 이라는 메서드도 있다. 둘의 차이점은, setInterval은 특정 동작을 반복적으로 수행할때 쓰이는데 반면 setTimeout은 특정 동작을 다른 동작이 모두 끝난 후 처리할 때 쓰인다는 점이다.
No comments: