[JavaScript] 블록 스코프 vs 함수 스코프

2022. 7. 13. 00:18WEB/Javascript

# 스코프

- 특정 범위에서 다른 범위에 있는 변수에 접근할 수 있는 범위

- 전역 스코프, 지역 스코프로 나뉜다 (전역 변수, 지역변수 느낌)

 

# 지역스코프

- 함수 스코프와 블록 스코프로 나뉜다.

- 함수 스코프는 함수에서 선언한 변수는 해당 함수 내에서만 접근이 가능하다.

var global = 10; //전역스코프

function func1(){
	let a = 1; //지역 스코프
}

if(a!==global){
	var global2 = "전역변수";
}

console.log(a) //error!
console.log(global) // 10
console.log(global2) // 전역변수

 

 

# var, let ,const의 스코프 차이

function func2(){
	for(var i = 0 ; i < 10; i++){
	...
	}
    console.log(i) // 10
    
}

function func3(){
	for(let i = 0 ; i < 10; i++){
	...
	}
    console.log(i) // undefined
    
}

- var은 함수내에서 전역취급이므로 접근이 가능하지만 let, const는 블록({})내부에서만 접근이 가능하다.

- var은 함수 스코프, let const는 블록스코프를 따른다.

- var은 window객체에 할당이 된다.

'WEB > Javascript' 카테고리의 다른 글

[JavaScript] 배열, 객체  (0) 2022.07.14
[JavaScript] 호이스팅(Hoisting)  (0) 2022.07.13
[JavaScript] 클로져  (0) 2022.07.12
[JavaScript] 깊은복사, 얕은복사  (0) 2022.07.10
[Javascript] 원시자료형, 참조자료형  (0) 2022.06.24