본문 바로가기

UI개발

자바스크립트 렉시컬스코프

 

함수의 상위 스코프를 결정하는 두 가지

동적스코프 - 함수를 어디서 호출했는지에 따라 상위 스코프 결정

정적스코프 - 함수를 어디서 선언했는지에 따라 상위 스코프 결정

 

정적스코프 = 렉시컬스코프 lexical scope

var msg = 'zz';

function log(){		// 함수 선언 순간 가장 가까운 변수 참조
    console.log(msg);   
}
function outer(){
    msg = 'ㅋㅋ';
    log();
}

outer(); // ㅋㅋ
var msg = 'rr';

function log(){		// 함수 선언 순간 가장 가까운 변수 참조
    console.log(msg);   
}
function outer(){
    var msg = 'ㄱㄱ';
    log();
}

outer(); // rr

 

전역변수를 지양해야하는 이유이기도 함

전역변수 해결 방법 : 지역 변수로 만들기

'UI개발' 카테고리의 다른 글

자바스크립트 클로저  (0) 2021.01.08
네임스페이스  (0) 2021.01.08
자바스크립트 함수표현식  (0) 2021.01.07
자바스크립트 - 콜백의 동기와 비동기  (0) 2020.08.23
이벤트 전파를 중단하는 방법  (0) 2020.08.23