프로그래밍/

javascript scope (자바스크립트 스코프에 대해)

Jay22 2017. 1. 31. 23:57
반응형

javascript는 다른 언어와는 달리 일반적인 블록 스코프를 따르지 않는다.


for(var i=0; i<10; i++) {

var a = i+1;

}


이 for문 밖에서도 i와 a에 접근이 가능하다. 하지만 다른언어에서는 에러가 난다.


그렇다면 Scope는 언제 생길까?


function foo() {

    var a= "test";

}


console.log(typeof a=== "undefined");


true가 나온다. function 구문을 통해서 scope가 생성되는 것을 알 수 있다.


try {

    throw new exception("dd");

} catch (err) {

    var test = "test";

}


catch구문 파라미터 err는 블럭안에서는 당연히 접근 가능하지만 밖에서는 접근할 수 없다. 

하지만 catch문안의 test변수는 외부에서 접근 가능하다.









반응형