스코프(Scope)
자바스크립트에서의 유효범위를 뜻한다. 즉, 변수와 매개변수의 접근성과 생존기간을 뜻한다.
자바스크립트의 유효범위는 다른 프로그래밍언어와 다른 개념을 갖는다.
전역 스코프
코드의 어느곳에서든 참조할 수 있는 범위
지역 스코프
코드블록, 함수내에서의 범위이며 자기 자신과 하위 범위에서만 참조할 수 있음
함수 레벨 스코프(Function-level scope)
🙄 자바 스크립트는 함수 레벨 스코프를 사용하기 때문에, 함수 내에서 선언된 변수는 함수 외부에서는 유효하지 않다!
<특징>
1. 함수 단위의 유효범위
- 다른 프로그래밍 언어들은 유효범위의 단위가 블록 단위여서 if문, for문 등 구문들이 사용되었을 때 중괄호 밖의 범위에서는 사용할 수 없지만 자바스크립트는 가능
2. 변수명 중복 허용
- 같은 변수명이 여러 개 있는 변수를 참조할 때 가장 가까운 범위의 변수를 참조한다.
3. var 키워드의 생략
- var을 생략하여 변수를 선언할 때, 전역 변수로 선언된다.
4. 렉시컬 특성
- 렉시컬 스코프는 함수를 어디에 선언하였는지에 따라 결정된다.
- 함수를 어디에서 호출하였는지는 스코프 결정에 아무런 의미를 주지 않는다.
참고 URL
https://velog.io/@bsjp400/JavaScript-%EC%8A%A4%EC%BD%94%ED%94%84Scope%EB%9E%80