한국말로는 '범위' 라는 의미
변수 접근 규칙에 따른 유효 범위
javascript는 기본적으로, 함수가 선언되는 동시에 자신만의 Scope를 가짐
안쪽 scope에서 바깥 변수/함수를 접근하는 것은 가능
바깥쪽 scope에서 안쪽 변수/함수를 접근하는 것은 불가능
중첩가능(함수안에 함수 넣을 수 있음)
최상단 scope(Global scope)는 어디든 접근이 가능하다.
지역 변수는 함수 내에서 전역 변수보다 더 높은 우선순위를 가짐.
Local scope
(지역 스코프)
Global scope
(전역 스코프)
let name = 'seungyong';
function showName() {
name= 'yong';
console.log(name); //2.yong
}
console.log(name); //1.seungyong
showName();
console.log(name); //3.yong
해석
1.⭐️
showName함수 안쪽에 name이 따로 변수 지정이 안되었기 때문에 전역변수의 값 'seungyong'을 가져오지만 함수 안쪽 name에 'yong'이라는 값이 있기에 재할당 함
2.⭐️⭐️⭐️
함수 실행이 안되었기 때문에 전역변수를 그대로 가져옴
3.⭐️⭐️⭐️
바로위 showName() <<함수가 실행되었으므로 안쪽 name이 전역 name을 재할당한 값이 나온다.