티스토리 뷰

📕 변수는 값을 저장할 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
      변수에 값을 저장하는 것을 할당이라 하고, 저장된 값을 읽어 들이는 것을 참조라고 한다.

// 변수는 하나의 값을 저장하기 위한 수단이다.
var userid = 1;
var userName = 'Lee';

// 객체나 배열 같은 자료구조를 사용하면 여러 개의 값을 하나로 그룹화해서 하나의 값처럼 사용할 수 있다.
var user = { id: 1, name: 'Lee'};
var users = [
	{ id: 1, name: 'Lee'}, 
	{ id: 2, name: 'Kim'}
];

 

📕 식별자는 어떤 값을 구별할 수 있는 고유한 이름을 말한다. (변수, 함수, 클래스 등)
      값은 메모리 공간에 저장되어 있어서 식별자는 값이 아니라 메모리 주소를 기억하고 있는 것이다.


호이스팅

📕 변수 호이스팅은 변수 선언문이 코드의 선두에서 동작하는 것처럼 동작하는 자바스크립트 고유의 특징이다.

console.log(score); // undefined
var score; // 변수 선언문

자바스크립트는 인터프리터 언어이므로 한 줄씩 순차적으로 실행된다.
위의 코드는 선언문이 뒤에 있어서 에러가 발생할 것처럼 보이는데 undefined가 출력된다.
그 이유는 자바스크립트 엔진이 실행하기에 앞서 소스코드의 평가 과정을 거치면서 모든 선언문을 찾아 먼저 실행하기 때문이다.

* 선언 단계와 초기화 단계가 한번에 진행


값의 할당과 재할당

📕 변수에 값을 할당할 때는 연산자 =를 사용한다. 변수 선언과 값의 할당을 한 문장으로 표현할 수도 있다.

var score = 80; // 변수선언과 값할당

주의할 점은 변수 선언의 실행 시점은 런타임 이전이고, 값 할당의 실행 시점은 런타임 동안으로 실행 시점이 다르다는 것이다.

console.log(score); // undefined

var score; // 1: 변수선언 
score = 80; // 2: 값의 할당

console.log(score); // 80

값 할당 시에는 undefined의 메모리 공간에 덮어 쓰이지 않고 새로운 메모리 공간에 저장된다.

console.log(score); // undefined

score = 80; // 값의 할당
var score; // 변수선언 

console.log(score); // 선언과 할당이 바뀌어도 80

 

📕 재할당은 이미 값이 할당되어 있는 변수에 새로운 값을 할당하는 것을 말한다.

     여기서 변수에 저장된 값을 변경할 수 없다면 상수이다.

var score = 80; // 변수 선언과 값의 할당
score = 90; // 값의 재할당

재할당은 처음 할당과 마찬가지로 기존 메모리 공간을 지우는 것이 아닌 새로운 메모리 공간에 저장한다.
그렇다면 처음 할당했던 값은 식별자로 연결되어있지 않으므로 가비지 콜렉터에 의해 메모리에서 자동 해제된다.

'자바스크립트' 카테고리의 다른 글

07장 연산자  (0) 2022.07.22
06장 동적 타이핑  (0) 2022.07.21
06장 데이터 타입  (0) 2022.07.19
05장 표현식과 문  (0) 2022.07.13
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday