Language/JavaScript

JavaScript 01 . 변수

ej503 2022. 8. 20. 14:43
모던 자바스크립트 Deep Dive 자바스크립트의 기본 개념과 동작 원리를 읽고 정리한 내용입니다.

 

4.1 변수란 무엇인가? 왜 필요한가?

  • 자바스크립트 엔진이 위 코드 (10+20)를 계산하려면 먼저 리터럴(데이터 그 자체)과 연산자의 의미를 알고 있어야 하며 10+20이라는 표현식의 의미도 파싱할 수 있어야 한다.
  • 프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 저장한 값을 읽어 들여 재사용하기 위해서 변수라는 메커니즘(기작)을 제공한다.
  • 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
  • 값의 위치를 가리키는 상징적인 이름이다.
  • 변수에 값을 저장하는 것을 할당(대입, 저장)이라 하고, 변수에 저장된 값을 읽어 들이는 것을 참조라고 한다.

 

4.2 식별자

  • 식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말한다.
  • 식별자는 값이 아니라 메모리 주소를 기억하고 있다.
  • 선언에 의해 자바스크립트 엔진에 식별자의 존재를 알린다. 

 

4.3 변수 선언

  • 변수 선언은 변수를 생성하는 것을 말한다. 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것이다. 
  • 변수를 선언할 때는 var, let, const라는 키워드를 사용한다. 이때 var 키워드는 블록레벨 스코프가 아니라 함수레벨 스코프를 지원하기 때문에 의도치 않게 전역변수가 선언되어 부작용이 발생하기도 한다.
  • 자바스크립트 엔진은 선언단계와 초기화단계로 나눌 수 있다. var 키워드는 선언단계와 초기화단계가 동시에 진행되고 어떤 값도 할당되지 않아도 undefined라는 값을 가진다.
  • 만약 선언하지 않은 식별자에 접근하면 ReferenceError(참조 에러)가 발생한다.

 

4.4 변수 선언의 실행 시점과 변수 호이스팅

  • 변수 선언은 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 먼저 실행되기 때문이다.
  • 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라 한다.

 

4.5 값의 할당

  • 변수 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행된다.

 

4.6 값의 재할당

  • 값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수라 한다.
  • const 키워드를 사용해 선언한 변수는 재할당이 금지된다. 
const foo = 10; //undefined
foo = 100; // Assignment to constant variable error

'Language > JavaScript' 카테고리의 다른 글

JavaScript 06. 스코프  (2) 2022.08.31
JavaScript 05. 함수  (0) 2022.08.28
JavaScript 04. 객체 리터럴  (0) 2022.08.27
JavaScript 03. 연산자  (0) 2022.08.25
JavaScript 02. 표현식과 문  (0) 2022.08.21