- 블록 스코프 (block scope)
: 중괄호{}로 범위가 구분된다.
- 함수 스코프 (function scope)
: function 키워드가 등장하는 '함수선언식' 및 '함수표현식'은
함수스코프를 만든다.
*주의 사항 : 화살표함수는 블록 스코프로 취급된다. ( 함수 스코프가 아님)
<블록스코프,화살표함수>
let getAge = user=>{
return user.age
}
<함수스코프>
let getAge =function(user){
return user.age
}
선언 키워드에 따른 스코프 규칙에 대해 알아보자(let과 var)
*콘솔에 출력되는 결과는 무엇일까.
for (let i = 0; i<5; i++){
console.log(i)
}
console.log(‘final i :', i)
⬇️
출력결과
0
1
2
3
4
ReferenceError
for(var i=0; i<5; i++){
console.log(i)
}
console.log('final i: ‘,i);
⬇️
0
1
2
3
4
‘final i : ’ 5
위의 결과로 알수 있는 사실:
var 로 선언된 변수는 for 문이 만들어낸 블록스코프의 영향을 받지 않는다.
변수를 정의 하는 방법에는 let 키워드와 var 키워드 등이 있는데 var 키워드로 정의한 변수는
블록 스코프를 무시하고 함수 스코프만 따른다.