반응형
Scope : 변수 접근 규칙에 따른 유효범위
- 안쪽 스코프에서 선언한 변수는 바깥쪽에서 사용불가능
- 스코프는 중첩이 가능하다
- 가장 바깥쪽의 스코프는 전역 스코프이다. 전역이 아닌 다른 스코프는 모두 지역 스코프임.
- 지역변수는 항상 전역변수보다 높은 우선순위를 가진다.
1. 안쪽 스코프에서 선언한 변수는 바깥쪽에서 사용불가능
let name = 'june'
if(name){
let talk = `hello ${name}!`;
console.log(talk) // hello june!
}
console.log(talk); //Error
변수 'talk' 는 2~5 조건문 안에서만 유효하다.
2. 스코프는 중첩이 가능하다.
3. 가장 바깥은 전역 스코프이고 그 외는 다 지역 스코프이다.
전역스코프안의 변수를 전역변수라고 하는데, 전역변수의 유효범위는 문서 전체이다.
let name = 'june' //전역변수 name 선언
if(typeof name ==='string')
{
let friend = 'may'// if문 블럭 안에서 선언된 변수 friend 는 if 문 안에서만 유효한 지역변수이다.
name = 'july' // name은 if문 안에서도 유효하다.
}
console.log(name) //july
console.log(friend) // friend is not defined
지역변수 'friend' 는 if문 안에서만 유효하고
전역변수 'name' 은 문서 전체에서 유효하다.
4. 지역변수는 전역변수보다 항상 높은 우선순위를 가진다.
전역scope에서 선언된 변수를 전역변수, 지역scope에서 선언된 변수를 지역변수라고 한다.
let name = 'june'
function showName(){
let name = 'july' // 함수안의 지역변수 name과 전역변수 name은 다른 name이다.
console.log(name); //여기서는 지역변수 name인 'july'가 출력된다.
}
console.log(name); //june (전역변수
showName(); //july (지역변수
console.log(name); //june (전역변수
반응형
'개발 > Javascript' 카테고리의 다른 글
js 클로저 (0) | 2021.08.04 |
---|---|
JS : 선언자 let, const가 var보다 권장되는 이유 (0) | 2021.08.04 |
JS 객체 dot notation과 bracket notation (0) | 2021.08.03 |
JS 배열의 Method : Mutable과 Immutable (0) | 2021.07.30 |
forEach() 사용예시 (0) | 2021.07.25 |