Language/JS

[자바스크립트] 스코프(Scope)

공부좀하시졍 2021. 12. 4. 00:52

스코프(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

 

[JavaScript] 스코프(Scope)란?

안녕하세요.이번 포스팅에선 스코프에 대해 다뤄보려 합니다!스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를

velog.io

https://ljtaek2.tistory.com/145