js에서 스코프는
범위
의 의미를 가지고 있다. 더 자세하게는유효범위
로 사용된다.
Scope의 종류
와 각 선언 키워드let
const
를 어떻게 사용하고 무엇을 권장하는지 알아야한다.
- 스코프의 의미와 적용 범위를 알아야한다.
- 스코프의 주요 규칙을 알아야한다.
- 중첩 규칙
block scope
와function scope
전역 스코프
와지역 스코프
전역 변수
와지역 변수
간의 우선순위let
,const
,var
의 차이전역객체(window)
의 이해
변수에 접근할 수 있는 범위가 존재한다. 중괄호(블록) 안 쪽에 변수가 선언되었는지, 바깥쪽에 선언되었는지가 중요하다. 이 범위를 스코프라고 부른다.
스코프의 정확한 정의는 "변수 접근 규칙에 따른 유효범위"이다
범위는 중괄호(블록) 또는 함수에 의해 나누어진다.
- 규칙
- 첫번째 => 안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만, 안쪽에서 선언한 변수는 바깥쪽 스코프에서는 사용할 수 없다.
- 두번째 => 스코프는 중첩이 가능하다.
- 세번째 => 가장 바깥의 스코프는
전역스코프(Global scope)
<=> 전역이 아닌 다른 스코프는 모두지역 스코프(Local scope)
이다.- 지역 변수는 전역 변수보다 더 높은 우선순위를 가진다.
let name = '김코딩'; // 전역 변수 function showName(){ let name = '박해커'; // 지역 변수 }
==> 지역 스코프에서 선언한 변수는 지역 변수이고, 전역 스코프에서 선언한 변수는 전역 변수이다.
그래서 지역 변수는 전역 변수보다 더 높은 우선순위를 가진다.
let name = '김코딩'; // 전역 변수 function showName(){ let name = '박해커'; // 지역 변수 console.log(name);// 두번째 출력 } console.log(name);// 첫번째 출력 showName(); console.log(name);// 세번째 출력