본문 바로가기

Dev-/java script, jQuery, Ajax

자바스크립트 스코프 체인 쉽게 이해할 수 있는 예제

var val = 1;

function func1() {
console.log(val);
}

function func2() {
var val = 100;
func1();
}

func2();

100이 출력될 것 같지만,


func1, func2는 모두 동일한 수준의 scope를 가지기 때문에

출력결과는 1이고, scope는 모두 전역 객체만 가지고 있다.




반대로 아래와 같은 경우는

var val = 1;

function func2() {
var val = 100;

function func1() {
console.log(val);
}

func1();
}

func2();

100이 출력되고, 

func1이 func2 scope를 하나 더 가지고 있는 것을 확인할 수 있다.

(전역 객체를 뒤지기 전에, func2를 먼저 확인)