Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

전역 코드 평가 - 전역 실행 컨텍스트 생성

anonymous

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

전역 코드 실행 - setTimeout 실행 컨텍스트 생성

anonymous

setTimeout(foo, 0)

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

전역 코드 실행 - bar 실행 컨텍스트 생성

anonymous

bar

timeout(foo, 0)

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

bar 코드 실행 - console.log 실행 컨텍스트 생성

anonymous

timeout(foo, 0)

bar

console.log('bar')

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

console.log 코드 실행 및 실행 종료

anonymous

bar

bar

foo

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

bar 코드 실행 종료

anonymous

bar

foo

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

전역 코드 실행 종료

bar

foo

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

foo 코드 실행 - foo 실행 컨텍스트 생성

bar

foo

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

foo 코드 실행 - console.log 실행 컨텍스트 생성

bar

foo

console.log('foo')

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

bar

foo

console.log 코드 실행 및 실행 종료

foo

Call Stack

Web APIs

Callback Queue

Console

function foo(){
  console.log('foo');
}

function bar(){
  console.log('bar');
}

setTimeout(foo, 0);
bar();

bar

foo 코드 실행 종료

foo

Made with Slides.com