@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에서부터 let과 const keyword를 사용할 수 있게 되었습니다.
자바스크립트 엔진은 변수 선언을 다음과 같이 2 단계에 거쳐 수행합니다.
🅰️ 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알리기
🅱️ 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefinied를 할당해 초기화
이러한 초기화 단계를 통해서 변수 값이 섞이고 꼬이는 위험을 방지할 수 있습니다.
Ⅱ. Scope
Ⅲ. How lexical Scope works?
ⅰ. Hoisting
JS에서 Hoisting 이란 인터프리터가 코드를 실행하기 전에 함수, 변수 또는 클래스의 선언을 우선적으로 실행하는 것을 의미합니다. ( 메모리 공간에 미리 우선적으로 할당 )
ⅱ. Terminal Dead Zone
'Programming > Java Script' 카테고리의 다른 글
[🍭JS기초] 원시값[primitive type]의 메서드 (자료구조와 자료형) (0) | 2023.02.04 |
---|---|
[🍭JS 기초] 옵셔널 체이닝 " ?. " (Q) (0) | 2023.02.04 |
[JS 기초문법] roadmap 따라가는 여기는" Basic " 정리 파트!!💪 (0) | 2022.12.19 |
왜 JavaScript에서 ES6(ECMA2015) 가 중심일까? (0) | 2022.12.19 |
JS 기초 문법 순서 - Study roadmap (0) | 2022.12.19 |