얼레벌레

모던자바스크립트 Deep Dive - 4장 변수 본문

JavaScript/모던자바스크립트 Deep Dive

모던자바스크립트 Deep Dive - 4장 변수

낭낭이 2022. 3. 14. 00:24

컴퓨터는 CPU를 이용해 연산하고, 메모리를 사용해 데이터를 기억한다. 

- 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이며, 메모리 셀 하나의 크기는 1바이트(8비트) ⇨ 1바이트 단위로 데이터를 저장하고 읽어들임

- 각 셀은 고유의 메모리 주소를 가지며 이 메모리 주소는 메모리 공간의 위치를 나타냄

- 동일한 컴퓨터에서 동일한 코드를 실행하더라도 값이 저장될 메모리의 주소는 변경된다. 따라서 기억하고 싶은 값은 변수에 저장한다

 

변수: 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 - 값의 위치를 가리키는 상징적인 이름

변수명을 식별자(identifier)이라고도 하는데, 이 식별자는 값이 아니라 메모리 주소를 기억하여 저장된 값에 접근한다.

- 변수, 함수, 클래스 등의 이름은 모두 식별자임 ⇨ 변수에만 한정되는 게 아니다.

 

변수를 사용하기 위해서는 변수 선언(variable declaration)이 반드시 필요하다

✔️ var, let, const 키워드를 사용해 변수를 생성

- ES6문법으로 let, const키워드가 도입됨

- var은 되도록 더이상 사용하지 않는다 ⇨ 블록 레벨 스코프(block-level-scope)를 지원하지 않고 함수 레벨 스코프(function-level-scope)를 지원하기 때문에 의도치 않게 전역 변수가 선언된다는 단점이 있음

 

 

var 키워드를 사용한 변수 선언은 선언 단계와 초기화 단계가 동시에 진행됨

- 선언 단계로 변수 이름을 등록하고, 초기화 단계가 동시에 진행되며 암묵적으로 undefined가 할당되며 초기화됨

- 선언하지 않은 식별자에 접근 시 ReferenceError가 발생

 

 

식별자 네이밍 규칙

✔️ 숫자, _, $, 영어 포함 가능. 다만 숫자로는 시작 불가능

▪️ naming convention

- camelCase - 변수나 함수 이름에 주로 사용

- PascalCase - 생성자 함수, 클래스 이름에 주로 사용

- snake_case, typeHungarianCase 등도 있음

 

Comments