[자바스크립트 기본] 05. 자료형
자바스크립트는 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든 바꿀 수 있는 동적 타입 언어다.
let message = 'hello';
message = 123;
숫자형은 정수 및 부동소수점 숫자를 나타내며, 대표적인 관련 연산으로 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-)이 있다.
일반적인 숫자 외에 Infinity, -Infinity, NaN과 같은 특수 숫자 값도 숫자형에 포함된다.
alert(1/0); // 무한대
alert(Infinity); // 무한대
NaN에는 어떤 추가 연산을 하더라도 NaN이 반환된다.
alert('문자열'/2); // NaN
alert('문자열'/2+5); // NaN
숫자형은 2^53-1(9,007,199,254,740,991)보다 크거나 -(2^53-1)보다 작은 정수는 나타낼 수 없다.
이에 따라 BigInt형이 표준으로 채택되게 되는데, 이 자료형은 길이에 상관없이 정수를 나타낼 수 있다.
BigInt형 값은 정수 리터럴 끝에 n을 붙여 만들 수 있다.
const bigInt = 1234567890123456789012345678901234567890n;
문자열은 따옴표로 묶는데, 따옴표 종류는 큰따옴표, 작은따옴표, 역따옴표(백틱)가 있다.
큰따옴표와 작은따옴표는 차이가 없으며, 역따옴표는 ${...}로 감싸 변수나 표현식을 문자열 중간에 넣을 수 있다.
let str = "Hello";
let str2 = 'World';
let str3 = `${str} World`; // Hello World
불린형(논리 타입)은 긍정을 의미하는 true와 부정을 의미하는 false 값을 가진다.
긍정이나 부정을 나타내는 값을 저장할 때나 비교 결과를 저장할 때에 사용된다.
let isSmaller = true;
let isGreater = 3 > 1;
alert(isGreater); // true
null 값은 어느 자료형에도 속하지 않는 값으로, 오로지 null 값만 포함하는 별도의 자료형을 만든다.
다른 언어에서의 null은 존재하지 않는 객체에 대한 참조나 널 포인터를 나타낼 때 사용하는 반면,
자바스크립트에서는 존재하지 않는 값, 비어 있는 값, 알 수 없는 값을 나타내는 데 사용한다.
let age = null; // 나이를 알 수 없거나 값이 비어 있음
undefinde 값도 null 값처럼 별도의 자료형을 만든다.
변수를 선언했으나 값이 할당되지 않은 변수에 undefined가 자동으로 할당된다.
let age;
alert(age); // undefined
변수에 undefined를 명시적으로 할당하는 것도 가능하나, undefined는 값이 할당되지 않은 변수의 초기값을 의미하므로,
변수가 비어 있거나 알 수 없는 상태임을 나타낼 때는 null을 사용하는 것이 권장된다.
객체형은 특수한 자료형으로, 데이터 컬렉션이나 복잡한 개체를 표현할 수 있다.
이에 반해 객체형 외의 다른 자료형은 문자열이나 숫자 등 한 가지만 표현할 수 있는 원시 자료형이다.
심볼형은 객체의 고유한 식별자를 만들 때 사용된다.
typeof 연산자는 인수의 자료형을 반환하며, 두 가지 형태의 문법을 지원한다.
alert(typeof true); // boolean
alert(typeof(10n)); // bigint
alert(typeof Math); // object (내장 객체는 객체형)
alert(typeof null); // object (null이 객체는 아니나 하위 호환성 유지를 위해 수정하지 않은 언어상의 오류)
alert(typeof alert); // function (함수는 객체형으로 함수형이라는 자료형은 없으나 하위 호환성 유지를 위함)
참고