JavaScript

스코프

마라랑랑 2022. 5. 22. 03:02

Function Scope (함수 스코프)

 
 
function outerFunc() {
	console.log(globalVal);   전역 변수
	console.log(innerVal);   innerVal is not defined

	function innerFunc() {
		var innerVal = '함수 내부 지역 변수';
		console.log(globalVal);  전역변수
	}
	innerFunc(); 

	return num;
}
 

 

전역변수
함수 밖에서 만든 변수로 함수 내부에서도 사용할 수 있다.

 

지역변수
함수 내부에서 만든 변수로 함수 외부에서는 사용할 수 없다.

 

블록 스코프

 - 변수 유효 범위
 - 내부에서 외부로 접근 가능
 - 외부에서 내부로는 접근할 수 없다
 
if (true) {
	var b = 'b';
	let a = 'a';
}

console.log(b);  b
console.log(a);  a is not defined
 
 var 는 처음부터 존재 => 함수 단위 유효 범위 (*for 문 if 문 안에서의 선언도 다른 함수에서 유효)
 let, const 는 ES2015이후 존재 => 블럭 단위 유효 범위 (같은 블록 안에서만 유효)
 
let과 const를 사용하기를 권장