JavaScirpt 공부 정리
<모던 자바스크립트 Deep Dive>의 목차를 따릅니다. 책을 발제하는 것을 기본 골조로 하고, 개인이 공부한 내용을 추가합니다.
항상 변수 선언만을 배우다가, 변수가 어떻게 저장되는지를 드디어 배웠다.
1 + 2
이 자바스크립트 코드를 실행하면 컴퓨터는 어떻게 작동할까?
여기서 문제가 발생한다. 각 값들을 어떻게 재사용하는가?
=> 메모리 주소를 통해 직접 값에 접근하는 것은 치명적인 오류를 발생시킬 위험성이 있기에, JS는 개발자의 직접적인 메모리 제어를 허용하지 않는다. 여기서 변수가 사용된다.
var result = 1 + 2;
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 메모리 공간을 식별하기 위해 붙인 상징직인 이름을 말한다.
식별자가 존재한다는 것을 자바스크립트 엔진에 어떻게 알릴까? 바로 선언이다. 변수 선언은 변수를 생성하는 것을 말한다.
이는 동시에 이루어지는 두 단계로 구성된다.
선언하지 않은 식별자에 접근하면 ReferenceError가 발생한다.
console.log(score); // undefined
var score;
score = 1+2;
console.log(score); // 80
var result = 1 + 2;
result = 10;
재할당하게 되면 새로운 할당 값 이전 값인 undefined와 3은 어떤 변수도 갖지 않는다. 이는 불필요한 값들이 되어 garbage collector에 의해 메모리에서 자동 해제된다. 언제인지는 예측할 수 없다. 🙅 변수 선언에 별도의 주석이 필요하다면 변수의 존재 목적을 명확히 드러내지 못하는 것이다.
var x = 3; // NO
var scroe = 3; // OK