- 변수에 접근 가능한 범위
- 함수 실행컨텍스트 내부의 변수 환경
this 키워드 값, 함수가 선언된 환경을 의미한다.
'어떤 친구가 날 불렀는가?'
function hi(){
console.log('hi');
function ask(){
console.log('what is your name?');
}
ask() // context = function hi
}
hi() // context = global
JS는 기본적으로 함수 스코프를 따른다
=> 함수가 선언될 때마다 새로운 스코프 발생
if( 5 > 3){
var num = 12345;
}
console.log(num); // 12345
function a(){
var num = 12345;
}
console.log(num) // ReferenceError
{ } 블록이 생성될 때마다 스코프가 생성됨
let, const의 등장으로 블록 스코프 생성 가능
function index() {
for(var i = 0; i < 5; i++) {
console.log(i);
}
console.log('last',i);
}
index();
/*
0
1
2
3
4
'last' 5
*/
function index() {
for(let i = 0; i < 5; i++) {
console.log(i);
}
console.log('last',i);
}
index(); /* ReferenceError: i is not defined */