본문 바로가기
boostcource/boostcourse_web programming

Window 객체 (setTimeout)

by sgyeong 2024. 4. 12.

Window 객체 

 

브라우저 개발을 하다보면 window 객체가 있다.
window에는 많은 메서드들이 존재하며, 아래처럼 사용할 수 있다.
window는 디폴트의 개념이므로 생략할 수 있다.

window.setTimeout()
setTimeout()     // window는 전역객체라서 생략 가능하다.      

 

 

setTimeout 활용
setTimeout은 인자로 함수를 받고 있으며, 보통 나중에 실행되는 함수를 콜백함수라고도 한다. 자바스크립트는 함수를 인자로 받을 수 있는 특징이 있다. 또한 함수를 반환할 수도 있다.

function run ( ) {
       setTimeout(function ( ) {
       var msg = "hello codesquad";   
                 console.log(msg);   // 이 메시지는 즉시 실행되지 않는다. 2초 뒤에 실행된다.
       }, 2000 );
}

run( );

setTimeout의 실행은 비동기로 실행되어 동기적인 다른 실행이 끝나야 실행된다.

setTimeout의 특성을 잘 이해하고, 지연실행이 필요한 경우에 잘 활용하면 좋다.

 

 

function run ( ) {                           //run start와 run end가 먼저 출력되고 msg와 run......ing가 출력된다.
       console.log("run start");
       setTimeout(function ( ) {
                 var msg = "hello codesquad";   
                 console.log(msg);   // 이 메시지는 즉시 실행되지 않는다. 2초 뒤에 실행된다.
                  console.log("run.......ing"); 
       }, 
2000 );

       console.log("run end");
}

run( );                                        

 

 

function run () {
      setTimeout(function ( ) {
             var msg = "hello codesquad";
             console.log(msg); 
      },  2000);    
}

console.log("run start");         //run start와 run end가 먼저 출력되고 마지막에 run( )이 실행된다.
run( );
console.log("run end");

 

function run () {
      setTimeout(function ( ) {
             var msg = "hello codesquad";
             console.log(msg); 
      },  2000);    
      console.log("run function end");
}

console.log("run start");         //run start > run function end > run end > msg 순으로 출력된다.
run( );
console.log("run end");
 

 

스택이 쌓이고 나서 비동기는 나중에 실행된다. 함수가 실행된 이후에 run이 실행된다.

 

 

 

 

 

 

참고 : boostcourse    https://www.boostcourse.org/web316/lecture/16698?isDesc=false

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

'boostcource > boostcourse_web programming' 카테고리의 다른 글

Browser Event, Event listener  (0) 2024.04.13
DOM과 querySelector  (0) 2024.04.12
[JavaScript] javascript -5  (0) 2024.04.11
[JavaScript] javascript -4  (0) 2024.04.11
[JavaScript] javascript -3  (0) 2024.04.11