JavaScript - 데이터 타입

Big Jay·2022년 8월 17일
0

JavaScript

목록 보기
7/8

데이터 타입(줄여서 ‘타입’)은 값의 종류를 말하며, 자바스크립트의 모든 값은 데이터 타입을 갖는다.

데이터 타입의 필요성

  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
  • 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
  • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

데이터 타입에 의한 메모리 공간의 확보와 참조

  • 데이터 타입에 의한 메모리 공간 확보
    값은 메모리에 저장하고 참조할 수 있어야 한다. 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야 한다. 변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.

  • 데이터 타입에 의한 메모리 참조
    변수의 값을 참조하려면 한 번에 읽어 들어야 할 메모리 공간의 크기, 즉 메모리 셀의 개수(바이트 수)를 알아야 한다.

타입의 종류

자바스크립트(ES6)는 7개의 데이터 타입을 제공하며, 원시 타입(primitive type)객체 타입(object type)으로 분류된다.

구분데이터 타입설명
원시 타입숫자 타입(number type)숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열 타입(string type)문자열
불리언 타입(boolean type)논리적 참(true)과 거짓(false)
undefined 타입변수 명령어로 선언된 변수에 암묵적으로 할당되는 값
null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값
심벌 타입(symbol type)ES6에서 추가된 7번째 타입
객체 타입객체, 함수, 배열 등

1. 숫자 타입(number type)

자바스크립트의 경우 다른 언어와 다르게 하나의 숫자 타입만 존재한다.

  • ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.
  • 모든 수를 실수로 처리하며, 정수만 표하기 위한 데이터 타입은 별도로 존재하지 않는다.
  • 정수로 표시된다고 해도 사실은 실수다.
  • 세 가지 특별한 값도 표현 할 수 있다.
    - Infinity: 양의 무한대
    • -Infinity: 음의 무한대
    • NaN: 산술 연산 불가(not-a-number)
// 모두 숫자 타입
var integer = 10; // 정수
var double = 10.12; // 실수
var negative = -20; // 음의 정수

// 숫자타입의 추가적인 세가지 특별한 값
console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity
console.log(1 * "문자열 타입"); // NaN

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

var binary = 0b01000001; // 2진수
var octal = 0o101; // 8진수
var hex = 0x41; // 16진수

// 표기법만 다를 뿐 모두 같은 값
console.log(binary); // 65
console.log(octal); // 65
console.log(hex); // 65
console.log(binary === octal); // true (참)
console.log(octal === hex); // true (참)

2. 문자열 타입

  • 텍스트 데이터를 나타내는데 사용
  • 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 전 세계 대부분의 문자 표현이 가능

문자열 표현 방법

문자를 작은 따옴표 또는 큰 따옴표, 백틱으로 감싼다.

var string;
string = "문자열"; // 작은 따옴표
string = "문자열"; // 큰 따옴표
string = `문자열`; // 백틱(ES6)

// 위와 같이 감싸지 않을 경우 식별자로 인식
string = 문자열; // 레퍼런스 오류

3. 불리언(Boolean) 타입

불리언 타입의 값은 논리적 참(true), 거짓(false)뿐이다.

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

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

불리언 타입의 경우 참, 거짓으로 구분되는 조건으로 조건문에 자주 사용된다.

4. undefined와 null 타입

undefined 타입

undefined 값 하나만 존재하며, 선언된 변수의 값이 할당되어 있지 않으면 undefined를 반환한다.

null 타입

undefined 타입과 동일하게 null 타입도 null 값 하나만 존재한다. (대소문자 주의)
null의 경우 undefined와 다르게 변수에 값을 지정하였으나 그 값이 비어있음을 의도적으로 명시한 것이다. 변수에 null을 할당하는 것은 이전 값을 제거하는 것이며, 자바스크립트 엔진은 참조하지 않는 이전 값을 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.

var foo = "jay";

// foo에 null을 할당하면서 이전 값인 jay를 참조하지 않는다.
foo = null;
profile
안녕하세요.

0개의 댓글