
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 |