✅ 스코프의 의미와 적용 범위를 이해할 수 있다
✅ 스코프의 주요 규칙을 이해할 수 있다
✅ 중첩 규칙
✅ block scope와 function scope
✅ 전역 스코프와 지역 스코프
✅ 전역 변수와 지역 변수간의 우선 순위
✅ let, const, var 의 차이
✅ 전역 객체(window)의 이해
스코프
: "선언한 변수에 접근 할 수 있는 범위"
스코프의 종류
1. Global Scope(전역변수)
2. Local Scope(지역변수) - Function Scope(함수로 둘러싼 범위),
Block Scope(중괄호로 둘러싼 범위)
화살표 함수는 블록 스코프로 취급된다
어디서든지 접근 가능한 변수
var a = 10;
// 전역변수 - 어디서든지 접근 가능한 변수
// 1. 밖에서 선언, 2. 블럭스코프에서 var변수를 사용
if (true) {
console.log(a); // 10
var a = 20;
console.log(a); // 20
}
console.log(a); // 20
function test() {
console.log(a) // 20
}
// 전역변수로 선언이 되었으면 어디서든지 사용이 가능하다
블럭이나 함수안에서 선언된 변수
// 블럭스코프
if (true) {
let a = 20;
// 블럭안에서 선언한 변수는 지역변수에 해당
// 블럭 안에서만 사용이 가능하다
console.log(a); // 20
}
// 함수스코프
function test() {
var b = 30
// function안에서 선언된 변수는 지역변수에 해당
// Local Scope 안에서만 사용이 가능하다
// function 안에서 선언된 선언문을 Function Scope라고 한다
console.log(a) // error - a는 지역스코프 이기때문에 밖에서 사용할 수 없다
console.log(b) // 30
}
console.log(b) // error - 지역스코프이기 때문에 밖에서는 b를 사용할 수 없다
블럭스코프의 경우에만 var로 선언을 했을때 전역스코프로 바뀌게 된다
// 블럭스코프
if (true) {
var a = 20;
console.log(a); // 20
}
// 함수스코프
function test() {
var b = 30
console.log(a) // 20
// 블럭스코프의 경우 var로 선언을 했을때 전역스코프로 바뀌게 되어서
// a의 값을 가져 올 수 있다
}
스코프의 특징