logo
Published on

모던자바스크립트 6.데이터타입

Authors
  • avatar
    Name
    Bora Choi
    Twitter

자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.

원시타입(primitive type)

  1. Number
  2. String
  3. boolean
  4. undefined
  5. null
  6. Symbol

객체타입(object/reference type)

객체, 함수, 배열 등


원시타입

1. Number 숫자타입

자바스크립트의 숫자 타입은 한 가지. 배정밀도 64비트 부동소수점 형식을 따르며 모든 수를 실수로 처리한다.

//숫자 타입
var integer = 10 //정수
var double = 10.12 //실수
var negative = -20 //음의 정수

정수로 표시되어도 사실은 실수이기때문에 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.

//숫자 타입은 모두 실수로 처리된다.
console.log(1===1.0); //true
console.log(4 / 2); //2
console.log(3 / 2;) //1.5

숫자 타입은 추가적으로 세가지 특별한 값도 표현 할 수 있다.

Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가 (not-a-number)

2. String 문자열 타입

자바스크립트에서 문자열은 작은따옴표(''),큰따옴표(""),백틱(````)으로 감싼다.

//문자열 타입
var string
string = '문자열'
string = '문자열'
string = `문자열` //(ES6)
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식된다.'
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식된다."

자바 스크립트의 문자열은 원시 타입이며, 변경 불가능한 값 (immutable value)이다.

3. boolean 불리언

논리적 참,거짓을 나타내는 값. true , false

4. undefined

undefined타입은 undefined가 유일.

자바스크립트 엔진이 변수를 초기화 할때 사용하는 값. 변수에 값이 없다는 것을 명시하고 싶을때는 null을 사용한다.

5. null

null타입은 null이 유일.

프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재 intentional absence)할 때 사용한다.

6. Symbol

다른 값과 중복 되지 않는 유일무이한 값. ES6에서 추가되었다.

객체타입

7. Object 객체타입

자바스크립트를 이루고 있는 거의 모든 것이 객체.


데이터타입의 필요성

몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야한다.

데이터 타입의 종류에 따라 크기의 정해진 크기메모리 공간을 확보한다.

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

동적 타이핑

변수를 선언 할때 타입을 선언하지 않고 어떠한 데이터 값이라도 자유롭게 할당 할 수 있다.

자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론type inference)된다.

재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다. ⇒ 동적 타이핑 (dynamic typing)

변수는 타입을 갖지 않는다. 값은 타입을 갖는다.


  • 퀴즈 ❓ 숫자 타입을말하시오

정답
실수
Infinity : 양의 무한대
-Infinity : 음의 무한대
NaN : 산술 연산 불가 (not-a-number)


본 포스팅은 모던자바스크립트 deep dive를 공부하면서 정리한 내용입니다.