[용어정리] 스코프(Scope)

posinity·2022년 11월 18일
0

JavaScript

목록 보기
4/31

참고자료 : (JavaScript) 스코프(Scope)란?

[스코프] 변수, 함수는 이렇게 호출됩니다.

정의

Scope를 우리말로 번역하면 ‘범위’라는 뜻.
스코프(Scope)란 ‘변수에 접근할 수 있는 범위’

모든 식별자(변수명, 함수명, 클래스명 등)는 자신이 선언된 위치에 의해서 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 결정된다.
=> 참조 유효 범위

함수 스코프(function-scoped)

자바스크립트에서 함수를 선언하면 함수를 선언할 때마다 새로운 스코프를 생성하게 됩니다. 그러므로 함수 몸체에 선언한 변수는 해당 함수 몸체 안에서만 접근할 수 있는데요. 이걸 함수 스코프(function-scoped)라고 합니다.
var로 함수를 선언하게 되면 함수 스코프를 따른다.

종류

스코프 체인


지역 스코프에서 먼저 변수를 찾고, 없으면 상위 지역 스코프, 없으면 전역 스코프에서 변수값을 찾는다

블록 스코프

기본적으로 자바스크립트는 함수 스코프를 따르나, 변수를 let이나 const로 선언하면 블록 스코프를 따른다.

블록(block)이란 중괄호로 둘러싸인 부분을 블록이라고 합니다. 함수를 선언할 때 중괄호로 함수 본문을 둘러싸게 되는데 이부분을 블록이라고 할 수 있습니다.

종류

*주의 : 사진은 var로 선언되어있지만 let으로 보기!

렉시컬 스코프


상위 스코프를 판별하는 기준
1. 함수가 호출된 위치 -> 동적 스코프 : 호출된 위치에 따라서 상위스코프가 바뀌기 때문
2. 함수가 만들어진 위치 -> 정적 스코프 : 바뀌지 않음

1번을 기준으로 삼으면 바나나, 애플
2번을 기준으로 삼으면 애플, 애플이 출력될 것.

자바스크립트는 정적 스코프를 따른다. 따라서 애플, 애플

profile
문제를 해결하고 가치를 제공합니다

0개의 댓글