JavaScript/Basic
스코프(Scope)
yunajoe
2022. 12. 3. 17:21
- var, let, const 키워드로 선언한 변수의 스코프는 다 다르게 동작한다
// Scope
let x = 3; // 글로벌 변수, 전역 변수(Global Variable)
function myFunction(){
let x = 5; // 로컬 변수, 지역 변수(Local Variable)
console.log(x);
}
myFunction(); // 5
console.log(x); // 3
var var1 = 1; // 코드의 가장 바깥 영역에서 선언한 변수
if(true){
var var2 = 2; // 코드 블록 내에서 선언한 변수
if(true){
var var3 = 3; // 중첩된 코드 블록내에서 선언한 변수
}
}
function foo(){
var var4 = 4; // 함수 내에서 선언한 변수
function bar(){
var var5 = 5; // 중첩된 함수 내에서 선언한변수
}
}
console.log(var1); // 1
console.log(var2); // 2
console.log(var3); // 3
console.log(var4); // "ReferenceError: var4 is not defined
console.log(var5); // "ReferenceError: var5 is not defined
스코프의 종류
구분 | 설명 | 스코프 | 변수 |
전역 | 코드의 가장 바깥 영역 | 전역 스코프 | 전역 변수 |
지역 | 함수 몸체 내부 | 지역 스코프 | 지역 벼수 |
전역과 전역 스코프
- 코드의 가장 바깥 영역
- 전역에 변수를 선언하면은 전역변수가 되며 전역변수는 어디서든지 참조가능
지역과 지역 스코프
- 함수 몸체 내부를 말한다.
- 지역에 변수를 선언하면은 지역변수가 되며, 지역 변수는 지역 스코프와 하위 지역 스코프에서 유효
블록레벨 스코프
- 함수 뿐만 아니라 모든 코드 블록(If, for, while, try/catch 등0 이 지역 스코프를 만든다
함수레벨 스코프
- 오로지 함수의 코드 블록만을 지역 스코프로 만든다