window 객체(setTimeout) - accidentlywoo/legacyVue GitHub Wiki
window 객체(setTimeout)
- 들어가기 전에 전역객체(window)에 속한 메서드에는 경고창을 띄어주는 alert 그리고 setTimeout이라는 메서드등이 있습니다. 이를 어떻게 사용하는지 그리고 다른 함수와 조금 다르게 동작하는 setTimeout의 특성을 이해해봅니다.
학습 목표
- setTimeout을 필요한 곳에 사용할 수 있다.
- 비동기가 무엇인지 기본 개념을 이해한다.
핵심 개념
- setTimeout과 비동기
학습하기
window 객체
브라우저 개발을 하다 보면, window 라는 객체가 있습니다. window에는 많은 메서드들이 존재하며, 아래처럼 사용할 수 있습니다. window는 디폴트의 개념이므로 생략할 수 있습니다.
window.setTimeout() setTimeout() //window는 전역객체라서 생략 가능하다.
setTimeout 활용
setTimeout은 낯설게 동작합니다. 인자로 함수를 받고 있으며, 보통 나중에 실행되는 함수를 콜백함수라고도 합니다. 자바스크립트는 함수를 인자로 받을 수 있는 특징이 있습니다. 참고로 함수를 반환할 수도 있고요. `function run() { setTimeout(function() { var msg = "hello codesquad"; console.log(msg); //이 메시지는 즉시 실행되지 않습니다. }, 1000); }
run();` setTimeout의 특성을 잘 이해하고, 지연실행이 필요한 경우에 잘 활용하면 좋습니다.
setTimeout 실행 순서
setTimeout의 실행은 비동기(asynchronous)로 실행되어 동기적인 다른 실행이 끝나야 실행됩니다. `function run() { console.log("start"); setTimeout(function() { var msg = "hello codesquad"; console.log(msg); //이 메시지는 즉시 실행되지 않습니다. }, 1000); console.log("end"); }
run();` 즉 setTimeout 안의 함수(콜백함수)는 run함수의 싱행이 끝나고 나서, (정확히는 stack에 쌓여있는 함수의 실행이 끝나고 나서 실행됨) 실행됩니다.디버거를 통해서 이를 스스로 직접 확인하는 것이 학습이 도움이 됩니다.
생각해보기
- 자바스크립트 비동기 예제를 좀 더 찾아보세요. setTimeout 말고도 비슷하게 동작하는 것들이 무엇이 있는지 알아보세요.
- setInterval이라는 메서드도 있습니다. 비슷한 동작인데 사용방법을 익혀두면 좋아요.