[JavaScript] 데이터 타입(Data Type)

김서진·2024년 1월 23일

데이터 타입이란?

값의 종류를 말하는데 자바스크립트의 모든 값은 데이터 타입을 갖는다.

1. 숫자(Number) 타입

자바스크립트는 c나 자바와 달리 하나의 숫자 타입만 존재하고 정수만 표현하기 위한 데이터 타입이 존재하지 않는다.

let a = 0b01000001; // 2진수
let b = 0o101; // 8진수
let c = 0x41; // 16진수

console.log(a) // 65
console.log(b) // 65
console.log(c) // 65
console.log(a === b) // true

// 2진수, 8진수 등을 표현하기 위한 데이터 타입을 제공하지 않기 때문에 모두 10진수로 해석된다. 

정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.

// 숫자 타입은 모두 실수로 처리한다.
console.log(1 === 1.0) // true

숫자 타입은 세 가지 특별한 값도 표현할 수 있다.
• Infinity: 양의 무한대
• -Infinity: 음의 무한대
• NaN: 산술 연산 불가(not-a-number)

console.log(10 / 0) // Infinity
console.log(10 / -0) // -Infinity
console.log(1 * 'String') // NaN

2. 문자열(String) 타입

문자열 타입은 텍스트 데이터를 나타내는 데 사용한다. 다른 타입과 달리 문자열을 따옴표로 감싸는 이유는 식별자와 구분하기 위해서다.

var string;
string = '가나다'
string = "가나다"
string = `가나다`

let string = hello; // 참조에러

3. 불리언(Boolean) 타입

불리언 타입의 값은 논리적 참, 거짓을 나타내는 ture와 false뿐이다.

var a = true;
console.log(a) // true

a = false;
console.log(a) // false

4. undefined 타입

undefined 타입의 값은 undefined가 유일하다.

var a;
console.log(a) // undefined

undefined는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화할 때 사용하는 값이다.

5. null 타입

null 타입의 값은 null이 유일하다. Null, NULL null은 변수에 값이 없다는 것을 명시하기 위해서 사용한다. 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미다.

var a = '가나다';

// 이전 참조를 제거. a 변수는 더 이상 '가나다'를 참조하지 않는다.
a = null;

함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <title>Document</title>
  </head>
  <body>
    <script>
    	var element = document.querySelector('.myClass');
        
        // HTML 문서에 myClass 클래스를 갖는 요소가 없다면 null을 반환한다.
    </script>
  </body>
</html>

6. 심벌(Symbol) 타입

심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.

// 심벌 값 생성
var key = Symbol('key')
console.log(typeof key) // symbol

// 객체 생성
var obj = {}

//이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용한다.
obj[key] = 'value'
console.log(obj[key]); // value

7. 객체 타입

자바스크립트의 데이터 타입은 크게 원시 타입과 객체 타입으로 분류된다. 자바스크립트는 객체 기반의 언어이고 자바스크립트를 이루고 있는 거의 모든 것이 객체이다.

0개의 댓글