기존 블로그에 작성한 내용을 velog로 이전한 글입니다
숫자, 문자열, 불리언, undefined, null, symbol
숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.
즉, 모든 수를 실수로 처리하며 정수만을 표현하기 위한 특별한 데이터 타입은 없다.
정수로 표시되더라도 실수이다.
숫자타입 중 특별한 값으론 Infinity, -Infinity, NaN이 있다.
문자열(string) 타입은 텍스트 데이터를 나타내는데 사용한다.
16bit 유니코드 문자를 사용해 대부분의 문자를 표현할 수 있다.
표현식 삽입
문자열은 문자열 연산자 +를 사용해 연결할 수 있다. + 연산자는 피연산자 중 하나 이상이 문자열인 경우, 문자열 연결 연산자로 동작한다. 그 외의 경우는 덧셈 연산자로 동작한다.
불리언 타입
논리적 참 거짓을 나타내는 true와 false 뿐이다.
undefined 타입
undefined 타입의 값은 undefined가 유일하다. 선언 이후 명시적으로 값을 할당하지 않은 변수는 자바스크립트 엔진의 암묵적 초기화에 의해 undefined 값을 가진다.
null 타입
null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
symbol 타입
변경 불가능한 원시 타입의 값이다. 심볼은 주로 이름의 충돌 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
객체, 함수, 배열 등
데이터 타입에 의한 메모리 공간의 확보와 참조
모든 값은 메모리에 저장하고 참조할 수 있어야 한다.
메모리에 값을 저장하기 위해서는 먼저 확보해야 할 메모리 공간의 크기를 알아야한다.
다시 말해 몇 byte의 메모리 공간을 사용해야 낭비와 손실없이 값을 저장할 수 있는지 알아야 한다.
데이터 타입에 의한 값의 해석
값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
값을 참조할 때 한번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
메모리에서 읽어 들인 2진수를 어떻게 해석할 지를 결정하기 위해
정적 타입 언어
C나 Java와 같은 정적 타입(Static/Strong type) 언어는 변수를 선언할 때 변수에 할당할 수 있는 값의 종류,
즉 데이터 타입을 사전에 선언해야 한다.
이를 명시적 타입 선언(explicit type declaration)이라 한다.
동적 타입 언어와 변수
동적 타입 언어는 변수에 어떤 데이터 타입의 값이라도 자유롭게 할당할 수 있다. 이러한 동적 타입 언어의 특징은 데이터 타입에 대해 무감각해질 정도로 편리하다.