[기술면접/JS] function-level scope, block-level scope (함수레벨 스코프, 블록레벨 스코프)

강민혁·2023년 3월 6일
0

기술면접 | JS

목록 보기
11/17

JS에서 function-level scope, block-level scope (함수레벨 스코프, 블록레벨 스코프)에 대해 설명하세요

Keyword

code block, 전역 변수, local scope, 지역 변수


Script

JS는 기본적으로 함수레벨 scope로 동작하는 프로그래밍 언어였습니다. 하지만, ES6 이후 도입된 let, const 키워드를 통해 블록레벨 scope를 도입하게 되었습니다.

함수레벨 scope는 code block이 아니라, 함수의 code block만을 local scope로 인식합니다. 그래서 if, for 문과 같은 code block을 가지는 경우가 local scope로 인식되지 않아서, 의도치 않은 전역 변수 재할당과 같은 부작용이 발생할 수 있습니다.

블록레벨 scope의 경우, 모든 code block 내에서 선언된 변수를 지역 변수로 보고, 해당 코드 블록 내부에서만 유효하게 됩니다.


Additional


Reference

BOOK - modern javascript deep dive

[JavaScript] 자바스크립트 블록레벨 스코프, 함수레벨 스코프

profile
with programming

0개의 댓글