유효범위(Scope)

최대 1 분 소요

유효범위는(Scope)는 변수의 수명을 의미한다.


유효범위 대상

자바스크립트는 함수에 대한 유효범위만 을 제공한다.

for(var i = 0; i < 1; i++){
    var name = 'coding everybody';
}
console.log(name);
// Result :
// coding everybody

for문 안에서 name 변수가 선언되어 있는데 이를 for문 밖에서 호출이 가능하다.

Note: 함수의 중괄호({})안에서 선언된 변수만이 지역변수가 된다.


정적 유효범위(Static Scoping)

자바스크립트는 함수가 선언된 시점 에서의 유효범위를 갖는다.

var i = 5; // 전역변수

function a(){
    var i = 10;
    b();
}

function b(){
    console.log(i);
}

a();
// Result :
// 5

자바스크립트는 함수가 선언된 시점에서 유효범위를 갖기 때문에 b함수를 호출한 a함수의 지역변수 i를 가르키는것이 아닌 전역변수 i를 가르킨다.

Note: 자바스크립트는 함수가 호출될 때가 아닌 정의될 때의 시점에서 유효범위를 갖는다.

참고 —

댓글남기기