<aside> 💡 코어 자바스크립트 책을 읽기 시작했다. 오늘은 1장, 데이터 타입
</aside>
C에서 string literal 을 저장하는 방식과 비슷한 것 같다.
var a = 'abc';
일때,'abc'
를 저장한 주소를 변수a
에 저장한다.var b = a;
이면, 변수a
에 저장된 주소값이 변수b
에 할당되서, 결국a
와b
모두abc
데이터가 저장된 주소를 가리킨다. 객체의 경우,var o = { a: 1 };
객체 내부의 키-밸류 데이터를 저장하기 위해서, 이중참조가 되므로, 당연하게 생각했던대로 동작한다.
기본형의 경우, 값을 복사한다고 생각하고 있었는데, 동작 방식에 큰 차이가 있었다.
결과는
object
. 예전에 봤던 기억이... 그새 까먹었다. 이 유명한 버그땜에 typeof 로 null 체크가 불가능하다.a === null || a === undefined
typeof a === 'object' && a !== null
undefined 를 값으로 사용하지 말라는 얘기가 나오는데.. 대신 null 을 쓰라고.. 사실 의도적으로 undefined 를 초기값으로 할당하는 경우가 많았어서.. 음.. 조금 고민이 된다. 아직 완전한 동의가 되진않는다.