TIL/JavaScript

[자바스크립트 기본] 05. 자료형

흙금 2023. 1. 11. 01:14

 

 

자바스크립트는 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든 바꿀 수 있는 동적 타입 언어다.

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 (함수는 객체형으로 함수형이라는 자료형은 없으나 하위 호환성 유지를 위함)

 

 

 

참고

https://ko.javascript.info/types