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

DY·2022년 8월 21일
0

JavaScript

목록 보기
8/12

스코프

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

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

지역스코프

  • 함수 스코프와 블록 스코프로 나뉜다.
  • 함수 스코프는 함수에서 선언한 변수는 해당 함수 내에서만 접근이 가능하다.
  • 함수 스코프는 함수내에서 어디든 사용이가능하고 함수가 끝나기 전까지 메모리상에서 제거되지 않는다.
  • 블록 스코프는 해당 블록 ({})에서만 사용이 가능하고 블록이 끝나면 메모리상에서 제거된다.
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은 window객체에 할당이 된다.
profile
프론트엔드 개발자가 되기 위해 공부중입니다. 블로그는 공부한 내용을 올리고 있습니다.

0개의 댓글