스코프(Scope)
변수와 함수가 영향을 미치는 범위
크게 전역 스코프와 지역 스코프로 나눌 수 있다.
1.전역 스코프
어디에서나 접근할 수 있는 스코프, Global Scope라고 한다.
let globalScope = 100 //전역변수, 외부변수
function globalScopeFnc(){
console.log(globalScope)
}
globalScopeFnc();//100
console.log(globalScope)//100
2.지역 스코프
특정 지역에서만 접근할 수 있는 범위, Local Scope라고 한다.
지역 스코프는 함수 스코프와 블록 스코프로 나눌 수 있다.
function localScopeFunc(){
let localScope = 200 //지역변수, 내부변수
console.log(localScope)
}
localScopeFunc();//200
console.log(localScope)//localScope is not defined
→ localScope는 localScopeFunc안에 선언된 변수이기 때문에 지역스코프 갖는 변수이다.
2 - 1. 블록 스코프
주어진 코드 블록({}) 안에서만 접근할 수 있다
function count(){
if(true){
let name = "hee"
console.log(name)//hee
}
console.log(name)//name is not defined
}
count(true);
2 - 2. 함수 스코프
주어진 함수(function)안에서만 접근할 수 있다
function count(){
if(true){
var name = "hee"
console.log(name)//hee
}
console.log(name)//hee
}
count(true);
2 - 3. 스코프와 변수
| let | var | const | |
| 중복 선언 | O | O | X |
| 스코프 범위 | 블록스코프 | 함수스코프 | 블록스코프 |
| 호이스팅 | 발생하지만 동작 X | 동작 | 발생하지만 동작X |