STUDY/JavaScript

JS : 데이터 타입 (Data Type)

RESHUR : 레슈 2022. 6. 30. 01:28

  JS : 데이터 타입 (Data Type)

 

 

데이터 타입이란?


 

  • 데이터 타입(줄여서 "타입")은 값의 종류를 말한다. 
  • 자바스크립트(ES6)는 8개의 데이터 타입이 있으며, 크게 원시 타입(Primitive Type)객체 타입 (Object/reference type)으로 나눌 수 있다.

 


구분 데이터 타입 (Data Type) 설명
원시 타입
(Primitive Type)

숫자형 타입
(Number Type)
숫자,정수와 실수 구분없이 숫자 타입만 존재
사칙연산이 가능
소수점 표현가능
문자열 타입
(String Type)
문자열
""(큰따옴표),''(작은따옴표),``(백틱)으로
작성함
논리형 타입
(Boolean Type)
논리적인 값을 표현
 참(true),거짓(false)만 존재
주로 조건문 등에서 동적 판단의 기준으로
사용
undefined  값이 할당되지 않는 상태를 나타냄
변수 선언후 초기화를 하지않는다면
undefined가 자동으로 할당
null 값이 비어있다는 의미의 자료형
존재하지않는(nothing), 비어있는(empty)
값을 나타내는데 사용
심벌 타입
(Symbol Type)
문자열과 함께 객체 (Properpty)로 사용
ES6에서 추가됨
비긴트 타입
(Bigint Type) 
ES11에서 추가
2의 53제곱-1보다 큰값을 사용할때 사용함
정수 리터럴의 뒤에 n을 붙임 (10n)
객체 타입 객체,함수,배열 등 

 

 


 

원시 타입 (Primitive Type)


숫자형 타입 (Number Type)

  • 자바스크립트는  int, long, float와 같은 숫자 타입을 사용하는 것이 아닌 한 가지 숫자 타입을 사용한다. 
  • 숫자 타입의 값은 배정밀도 (Double Precision) 64비트 부동 소수점 형식을 따른다.
  • 든 수를 실수로 처리한다.

 

var integer = 22; // 정수
var double = 10.27; // 실수
var negative = -20; // 음의 정수

 


  • 정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 2진수로 저장된다.
  • 자바스크립트는 모든 수를 실수로 처리하는데, 이는 정수로 표시된다 해도 사실은 실수이다.
  • 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다. 
console.log(1 === 1.0); // true
console.log(4 / 2); // 2
console.log(5 / 2); // 2.5

 

 


  • 숫자형 타입은 일반적인 숫자 외에 Infinity(양의 무한대), -Infinity(음의 무한대), NaN (산술 연산 불가 Not-A-Number)가 있다.
console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity
console.log(1 * "HELLO"); // NaN

 

 


 

  • 자바스크립트는 대소문자를 구별하므로 NaN을 NAN, nan, nan과 같이 표현하면 에러가 발생한다.
// 자바스크립트는 대소문자를 구별한다.

const x = nan; // ReferenceError: nan is not defined

 


문자열 타입 (String Type)

  • 문자, 문자열을 표현하는 자료형이다.
  • 문자열은 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 이루어져 있다.
  • ""(큰따옴표), ''(작은따옴표), ``(백틱) 으로 텍스트를 감싸는 형태로 사용한다.

 

let a = "사과";
let b = '벌';
let c = `사탕`;

console.log(a); // 사과
console.log(b); // 벌
console.log(c); // 사탕

 

 


  • 작은따옴표('')를 문자열에 쓰고 싶을 경우엔 큰 따옴표("")로 감싸서 사용하면 된다.
  • 작은따옴표('')로만 사용하고 싶을 경우 역슬래시(\ 엔터키 위에 존재)를 사용한다.
const string1 = "I'm RESHUR!";
const string2 = 'I\' REshur';

console.log(string1); // "I'm RESHUR!"
console.log(string2); // "I' REshur"

 

 


  • 다른 타입과 다르게 문자열을 따옴표로 감싸는 이유는 키워드나 식별자 같은 토큰과 구분하기 위해서이다.
  • 자바스크립트는 문자열을 따옴표로 감싸지 않으면 식별자와 같은 토큰으로 인식한다. 
const hello = 안녕하세요; // ReferenceError: 안녕하세요 is not defined

 

 


 

  • 백틱(``)은 문자열 (String) 내부의 변수를 표현할 때 주로 사용한다.
  • 일반 따옴표로 작성할 경우 변수가 그대로 표시된다.

 

const name = "RESHUR";
const message = `My Name is ${name}`; // My Name is RESHUR'

console.log(message);
------------------------------------------

const age = 20;
const message2 = `My Age is ${age}`; // 'My Age is 20'

console.log(message2);
------------------------------------------

const hi = "안녕하세요";
const message3 = "${hi}!!!!!";

console.log(message3); // '${hi}!!!!!'

 

 


논리형 타입 (Boolean Type)

  •  논리형 타입은 참(true), 거짓 (false) 뿐이다.
  • 주로 조건문 등에서 동작 판단의 기준으로 사용된다.
const name = "RESHUR";
const age = 12;

console.log(1 === name); // false
console.log(12 === age); // true

 

 


 

undefined 타입

  • undefied타입은 값이 할당되지 않은 상태를 나타낼 때 사용한다.
  • 변수 선언 후 초기화를 하지 않는다면, undefined가 자동으로 할당된다.
let hello;

console.log(hello); // undefined

 

 


null 타입

  • null 타입의 값은 null 이 유일하다.
  • 자바스크립트는 대소문자를 구별하므로 null 은 Null, NULL 과는 다르다.
  • null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재 intentional absence)할 때 사용한다.
    • 수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미다.
let empty = "hello";
empty = null;

console.log(empty); // null

 

 


심벌 타입 (Symbol Type)

  • 심벌 타입은 ES6에서 추가된 타입이며, 변경 불가능한 원시 타입이다.
  • 심벌값은 다른 값과 중복되지 않은 유일무이한 값이다.
  • 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
  • symbol 함수를 호출해 생성하며 이때 생성된 심벌 값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않은 유일무이한 값이다.

 

// 심벌값 생성
let key = Symbol("key");

console.log(key); // Symbol

// 객체 생성
let obj = {};

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

 

 


비긴트 타입 (Bigint Type)

  • 자바스크립트에서 사용할 수 있는 최댓값은 2의 53 제곱의 -1 (2^53-1)이며, 보다 큰 정수를 다루고 싶을 때 사용한다.
  • 정수, 실수 등의 숫자, 정수의 한계는 2^53이며 그 이상을 표현하고 싶을 때 n을 붙인다.
const num = 1234567n;

console.log(typeof(num)); // bigint

 

 


 

 

JS : 자료형 - 원시 타입(primitive type)

JS : 자료형 - 원시 타입(primitive type) 문자형 (string) 문자형(string)은 문자, 문자열을 표현하는 자료형이며, 3가지 방식으로 작성할 수 있다. 큰 따옴표 : "Mike"; 작은따옴표 : 'Mike'; 역 따옴표..

sol-reshur.tistory.com

 

 

 


 

객체타입 (Object /  Reference Type)


  • 원시 타입과 객체 타입은 근복적으로 다르다.
  • 자바스크립트는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체이다.
  • 위에 기재한 데이터타입(원시타입)외의 값은 모두 객체 타입이다.

 

 

JS : 자료형 - 객체 타입 (object type)

JS : 자료형 - 객체 타입 (object type) object는 다수의 원시 자료형을 포함하거나 복잡한 개체 (entity)를 표현할 수 있는 자료형이다. object() 혹은 중괄호 {}를 통해 생성한다. object의 객체는 key:..

sol-reshur.tistory.com

 

'STUDY > JavaScript' 카테고리의 다른 글

JS : Import & Export  (0) 2022.07.04
JS : Module (모듈)  (0) 2022.07.04
JS : Scope (스코프)  (0) 2022.06.28
JS : 연산자 (Operators)  (0) 2022.05.23
JS : 형 변환(Type Casting)  (0) 2022.05.12