The journey to becoming a developer

My future is created by what I do today, not tomorrow.

Programming/JavaScript

[Deep Dive Week 2] Scope in JavaScript

Millie 2022. 4. 10. 01:23

Scope can be explained by looking at the ways that international laws, national laws, and local laws work together

 

JavaScript Deep Dive 스터디 질의응답 정리

범위 : 13장 스코프, 14장 전역 변수의 문제점, 15장 let, const 키워드와 block level scope 


1. 상위 스코프에 있는 변수를 하위 스코프에서 참조할 수 있는 이유는 무엇인가요? 반대로, 상위 스코프에서 하위 스코프를 참조할 수 없는 이유는 무엇인가요? (자바스크립트 엔진이 변수를 참조하는 방식을 설명해보세요.)

더보기

자바스크립트의 스코프는 계층적인 구조를 갖기 때문입니다. 이것을 Scope Chain이라고 합니다. 

변수를 참조할 때, 자바스크립트 엔진은 이 Scope Chain을 통해 변수를 참조하는 Scope에서 시작해서 상위의 Scope로 이동하면서 선언된 변수를 검색합니다. 즉, Scope Chain이 있기 때문에 상위 Scope에서 변수를 선언했더라도 하위 Scope에서 그 변수를 참조할 수 있게 되는 것입니다.

 

2. 스코프의 정의를 간단히 설명하고, 자바스크립트의 스코프의 특징을 설명해보세요. 

더보기

스코프는 식별자가 유효한 범위입니다. 스코프를 결정하는 방식에는 정적 스코프와 동적 스코프가 있는데, 자바스크립트는 정적 스코프 방식을 따릅니다. 정적 스코프 방식은 함수나 변수가 선언된 곳을 기준으로 상위 스코프를 결정합니다. 반면 동적 스코프는 선언된 곳이 아니라 호출하는 곳을 기준으로 상위의 스코프를 결정합니다. 

 

3. var, let, const의 차이를 TDZ(Temporal Dead Zone) 키워드를 포함해서 설명해보세요.

4. 전역 변수와 지역 변수의 생명 주기에 대해 설명해보세요.

5. 객체를 const로 선언했을 때 객체의 값을 바꿀 수 있는지 여부를 이유와 함께 설명해보세요.

6. 왜 전역변수 사용을 지양해야 할까요? 교과서적인 이야기보다는 당신의 프로그래밍 경험을 곁들여 말씀해주세요. 

7. 전역변수 사용을 지양하기 위한 방법에는 무엇이 있을까요?


그 외 이야기 나눴던 주제

1. ES6에서 즉시실행함수의 효용성 - 라이브러리와 관련해서 

 


Reference

사진 출처

 

How JavaScript variable scoping is just like multiple levels of government

by Kevin Kononenko How JavaScript variable scoping is just like multiple levels of government Have you ever smashed your keyboard in frustration after getting an undefined value over and over again while trying to find the value of a variable? Or, have you

www.freecodecamp.org

 

그림과 함께 시각적으로 Scope를 표현하여 설명하는 글. 심화 학습을 위해서 읽어보면 좋겠다. 

 

The Visual Guide To JavaScript Variable Definitions & Scope

We often talk about scope differences between var, let and const. But even more often, I see people still not fully grasping the idea. I…

jstutorial.medium.com