티스토리 뷰

변수 유효범위?

변수를 어디에서 접근할 수 있느냐를 가리킨다.
종류 범위 소멸 시점
전역 변수 코드 내에서 어디서든 변수에 접근할 수 있음  함수가 종료되면 메모리에서 사라짐.
지역 변수 함수 내에서 변수를 정의하고 접근할 수 있음  웹 페이지가 닫히면 메모리에서 사라짐.
  • 함수 매개변수도 지역 변수로 간주하며 해당 함수의 본문 내에서 접근 가능.
  • 지역 변수와 전역 변수의 이름이 같을 경우 지역 변수가 우선순위가 높음.

지역 변수

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

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'개발 언어 > NodeJS' 카테고리의 다른 글

자바스크립트 - 매개변수  (0) 2019.07.27
자바스크립트 - 함수 유효범위  (0) 2019.07.27
자바스크립트 - 함수  (2) 2019.07.06
자바스크립트 - 배열  (0) 2019.07.06
자바스크립트 - 반복문  (0) 2019.07.06
댓글