티스토리 뷰
728x90
변수 유효범위?
변수를 어디에서 접근할 수 있느냐를 가리킨다.
종류 | 범위 | 소멸 시점 |
전역 변수 | 코드 내에서 어디서든 변수에 접근할 수 있음 | 함수가 종료되면 메모리에서 사라짐. |
지역 변수 | 함수 내에서 변수를 정의하고 접근할 수 있음 | 웹 페이지가 닫히면 메모리에서 사라짐. |
- 함수 매개변수도 지역 변수로 간주하며 해당 함수의 본문 내에서 접근 가능.
- 지역 변수와 전역 변수의 이름이 같을 경우 지역 변수가 우선순위가 높음.
지역 변수
function localScope() {
var local = 1;
console.log('local :: ', local);
}
localScope(); // local :: 1
console.log(local); // ReferenceError: local is not defined
함수내 지역변수 선언시 var를 사용하지 않으면 전역변수로 선언된다.
function noneVarDefine() {
noVarDefineVariable = 100;
console.log('noVarDefineVariable :: ', noVarDefineVariable); // noVarDefineVariable :: 100
}
noneVarDefine();
console.log('noVarDefineVariable :: ', noVarDefineVariable); // noVarDefineVariable :: 100
전역변수
전역변수는 네임스페이스를 오염시키기 때문에 가급적 사용을 자제한다.
var globalNum = 99;
function globalScope() {
console.log('globalNum :: ', globalNum); // globalNum :: 99
globalNum = 1;
}
globalScope();
console.log('globalNum :: ', globalNum); // globalNum :: 1
전역변수와 지역변수의 이름이 같을시 가장 가까운 변수를 참조한다.
// node에서는 global객체 선언시 아래와 같이 사용한다.
global.num = 10;
function sameNameWithGlobalVariable() {
var num = 999;
// 가까운 지역변수를 참조한다.
console.log('num :: ', num); // num :: 999
// 전역변수를 접근하고 싶다면 global를 붙인다.
console.log('global.num :: ', global.num); // global.num :: 10
}
sameNameWithGlobalVariable();
console.log('num :: ', num); // num :: 10
console.log('global.num :: ', global.num); // global.num :: 10
참조
http://tcpschool.com/javascript/js_function_variableScope
728x90
'개발 언어 > NodeJS' 카테고리의 다른 글
자바스크립트 - 매개변수 (0) | 2019.07.27 |
---|---|
자바스크립트 - 함수 유효범위 (0) | 2019.07.27 |
자바스크립트 - 함수 (2) | 2019.07.06 |
자바스크립트 - 배열 (0) | 2019.07.06 |
자바스크립트 - 반복문 (0) | 2019.07.06 |
댓글