하루 기록

4장, 변수 본문

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

4장, 변수

떼굴펜 2024. 4. 17. 13:00

변수란?

: 하나의 값을 저장하기 위한 메모리 공간 또는 그 공간을 식별하기 위한 이름

 

왜 변수를 사용하는가?

: 재사용

 

예시를 통한 용어 익히기

var name;                    // 변수를 선언했다. 식별자는 name이다. 
name = "뗴굴펜";        // 변수에 값을 할당했다.
name = "하루 기록";   // 변수에 값을 재할당했다.
 
var age = 20;               // 변수를 선언과 동시에 값을 할당했다. 

vat year = 2024;           // 변수를 선언했고 초기화 값은 2024,
  • 선언 : 변수를 사용하겠다! 외치는 것 
  • 식별자 : 변수의 이름 또는 변수명
  • 할당 : 변수에 저장할 값을 지정하는 것. 대입, 저장이라고도 한다.
  • 초기화 : 변수 선언한 이후 최초로 값을 할당하는 것

 

값 할당을 하지 않으면?

var name;
console.log(name);    // undefined

 

변수 선언할 때 값을 초기화 하지 않으면 암묵적으로 undefined 가 할당된다.

 

 

호이스팅

console.log(name);    // undefined

name = "떼굴펜";       // 변수 할당
var name;                   // 변수 선언

console.log(name);    // 떼굴펜

 

Javascript는 한 줄씩 순차적으로 실행된다.

다른 언어에서는 변수 선언 전에 접근하면 오류가 나는데,

특이하게도 javascript는 변수 선언 전에도 undefined가 할당되어 있다.

 

이는 자바스크립트 엔진은 위치와 상관없이  변수 선언이 다른 코드들 보다 먼저 실행되기 때문이다.

다시말해 위의 코드가 마치 아래처럼, 변수 선언이 코드의 맨 앞에서 실행된 된 것같은 현상을 변수 호이스팅이라고 한다.

var name;                   // 변수 선언

console.log(name);    // undefined

name = "떼굴펜";       // 변수 할당

console.log(name);    // 떼굴펜


참고로 var, let, const, function, function*, class 키워드를 사용하는 모든 식별자(변수, 함수, 클래스 등)는 호이스팅된다.

모든 선언문은 런타임 이전 단계에서 먼저 실행되며, 이는 자바스크립트의 고유한 특징 중 하나이다.

 

 

 

'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글

10장, 객체 리터럴  (1) 2024.04.19
9-2장, 단축 평가  (2) 2024.04.19
9-1장, 타입 변환  (0) 2024.04.19
6장, 데이터 타입  (2) 2024.04.18
5장, 표현식과 문  (0) 2024.04.18