JS. 자바스크립트의 자료형

자몽·2021년 8월 10일
1

JavaScript

목록 보기
9/25

✅ 자바스크립트의 자료형

자바스크립트의 자료형은 총 7가지이다.
7가지는 크게 기본 자료형(Primitive)과 객체(Object)로 나눌 수 있다.

📌 Primitive

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol

📌 Object

  • Object

✅ 각 자료형의 특징

📕 Boolean

Boolean은 논리적인 요소를 나타내며, true, false의 2가지 값을 가진다.

1===2 // false
typeof(1===2) // 'boolean'

📘 Null

Null은 식별되지 않는 것을 표현하며, null이라는 1가지의 값을 가진다.

var sample = null
sample===null //true
typeof(sample) // 'object'

이상하게도 sample===null의 값은 참인데 typeof시 데이터 타입은 object로 반환되는 것을 볼 수 있다.
이는, 초기 자바스크립트의 버그로 수정하면 파장이 클까봐 이렇게 계속 쓰이고 있다고 한다.

📙 Undefined

undefined는 선언한 후 값을 할당하지 않는 변수, 값이 주어지지 않는 인수에 자동으로 할당되며, udnefined를 가질 수 있다.

var sample;
typeof(sample) // 'undefined'

📗 Number

숫자의 자료형은 단 하나만 존재한다.(float, double 등등 없음)
우선, 단 하나만 존재하는 이유에 대해 설명하자면, 숫자 타입이 64비트의 부동 소수점을 이용해 표시하기 때문에, 모든 수 체계를 지원하기 때문이다.

이렇게만 들으면 장점밖에 없어 보이지만, 단점도 존재한다.
간단한 덧셈 연산을 해보도록 하겠다.

0.3+0.4 // 0.7
0.1+0.2 // 0.30000000000000004

진짜 기초적인 연산인데 어째서 0.30000...4가 나오는 것일까?

컴퓨터는 실수를 연속적으로 표현할 수 없기 때문에, 4/3이 1.33333...으로 무한대로 가는 경우 중간에 끊어줄 필요가 있어진다.
이런 특정 시점으로 끊기는 수와 수 사이의 간격머신 입실론(Machine Epsilon)이라고 하고, 위의 덧셈에서의 오류를 해결하기 위해서는 머신 입실론을 통해 equal 처리를 해주거나, 수학 관련 라이브러리를 사용해야 한다.

📕 String

String 타입은 텍스트 데이터를 나타내는데 사용한다.
String(문자열)은 변경 불가능하기 때문에, 수정할 수 없다.

var name = 'jamong';
typeof(name); // 'string'

📘 Symbol

Symbol은 유일하고 변경 불가능한 값이다.

var sym = Symbol('sun');
typeof(sym); // 'symbol'

📙 Object

Object(객체)는 식별자로 참조할 수 있는, 메모리에 있는 값이다.
객체는 키와 값으 매핑이기 떄문에, hashmap을 표현하기에 적합한 자료형이기도 하다.

// 생성자 함수
function Book(name){
  this.name = name;
}
const book1 = new Book('JavaScript');
typeof(book1); // 'object'

참고 자료:

profile
꾸준하게 공부하기

0개의 댓글