Programming/Java Script

[JS 기초문법] roadmap 따라가는 여기는" Variables " 정리 파트!!💪

감귤밭호지차 2022. 12. 21. 00:52

@code.foreveryone님의 JS roadmap중 오늘은 Variables 파트에 대해서 정리해보겠습니다!! 

이번 " Variables " 파트에서 공부할 내용은 다음과 같습니다. 

 

1. var / let /const

2. scope ( global, function, block )

3. How lexical scope works?

4. Hoisting

5. Terminal Dead Zone

 

 

@code.foreveryone님의 JS roadmap은 클릭띠! 

 


Ⅰ. var / let / const

 

JS에서 다루고 있는 변수에 대해 알아보기 전에 우선 " 변수 " 란 무엇인지 정의해봅시다. 

 

🔆변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름

 

위의 정의대로 변수는 프로그래밍 언어에서 값을 저장하고 참조하는 메커니즘으로 값의 위치를 가리키는 이름입니다. 

우리는 변수를 통해 안전하게 값에 접근할 수 있습니다. 변수에는 하나의 값만 저장 할 수 있는데 '배열' 이나 '객체'를 

이용하면 여러 개의 값을 그룹화 해서 하나의 값처럼 사용할 수 있습니다. 

 

변수에 값을 저장하는 것을 ' 할당( 대입, 저장) ' 이라 하고 변수에 저장된 값을 읽어들이는 것을 ' 참조 ' 라고 합니다. 

변수 이름은 *식별자(identifier) 이라고 하며 식별자는 값이 아닌 메모리 주소를 이거하고 있습니다. 

 

var *result = 30;

 


 

❗그렇다면 이제 변수를 사용 = 선언하기 위해서는 var, let, const라는 keyword를 사용해야 합니다. 

ES5에서는 var keyword만 사용하다가 ES6에서부터 letconst keyword를 사용할 수 있게 되었습니다. 

자바스크립트 엔진은 변수 선언을 다음과 같이 2 단계에 거쳐 수행합니다. 
🅰️ 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알리기
🅱️ 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefinied를 할당해 초기화 

이러한 초기화 단계를 통해서 변수 값이 섞이고 꼬이는 위험을 방지할 수 있습니다. 

Ⅱ. Scope

 

 

Ⅲ. How lexical Scope works?

 

 

ⅰ. Hoisting

 

JS에서 Hoisting 이란 인터프리터가 코드를 실행하기 전에 함수, 변수 또는 클래스의 선언을 우선적으로 실행하는 것을 의미합니다. ( 메모리 공간에 미리 우선적으로 할당 )

 

ⅱ. Terminal Dead Zone