JavaScript Deep Dive [데이터 타입]

성석민·2022년 6월 19일
1

Deep Dive

목록 보기
3/3
post-thumbnail

데이터 타입

자바스크립트의 데이터 타입은 원시 타입(primitive type)참조타입(reference type)으로 분류할 수 있습니다.

원시 타입(primitive type)

데이터 타입설명
숫자 타입 (Number)숫자,정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열 타입 (String)문자열
불리언 타입 (Boolean)논리적 참(true)과 거짓(false)
undefined 타입변수에 값이 할당되지 않은 상태
null 타입값이 없다는 것을 의도적으로 명시
심벌 타입 (Symbol)충돌 위험이 없는 유일한 객체의 프로퍼티 키

참조타입(reference type)

데이터 타입설명
객체 타입객체, 함수, 배열 등...

숫자 타입

C언어, 자바의 경우 정수실수를 구분해서 int, long, float, double 등과 같은 다양한 숫자 타입을 제공하지만 자바스크립트에서는 하나의 숫자 타입만 존재합니다.

// 모두 숫자 타입입니다.
var integer = 10;   // 정수

var double = 10.12; // 실수

var negative = -20; // 음의 정수

자바스크립트는 모든 수를 실수로 처리합니다.

console.log(1 === 1.0) // true

문자열 타입

텍스트 데이터를 나타내는데 사용하며 작은따옴표(''), 큰따옴표(""), 백틱(``)으로 텍스트를 감싸서 표현합니다.

자바스크립트에서 가장 일반적인 표기법은 작은따옴표 입니다.

var string;

string = '문자열';
string = "문자열";
string = `문자열`;

불리언 타입

논리적 참, 거짓을 나타내는 truefalse로 표현합니다.

var bool;

bool = true;
bool = false;

undefined 타입

개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값입니다.

var foo;

console.log(foo) // undefined

null 타입

변수에 값이 없다는 것을 의도적으로 명시할 때 사용합니다.

var foo = null;

console.log(foo) // null

symbol 타입

다른 값과 중복되지 않는 유일무이한 값입니다.
주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용됩니다.

참조 타입

참조 타입은 객체, 배열, 함수 등이 있습니다.

var obj = {}; 	   // 객체
var arr = [];      // 배열
function foo () {} // 함수

동적 타이핑

프로그래밍 언어에는 두 가지정적 타입 언어동적 타입 언어이 있습니다.

정적 타입 언어에는 C, C++, 자바, 코틀린 등이 있으며, 변수를 선언할 때 데이터 타입을 사전에 선언해야 합니다.
동적 타입 언어에는 자바스크립트, 파이썬, 루비 등이 있으며, 변수를 선언할 때 데이터 타입을 선언하지 않습니다.

자바스크립트의 변수에는 어떤 데이터 타입의 값이라도 자유롭게 할당할 수 있으므로 정적 타입 언어에서 말하는 데이터 타입과 개념이 다릅니다.

정적 타입 언어변수 선언 시점에서 변수의 타입이 결정되고 변수의 타입을 변경할 수 없는 반면,
동적 타입 언어에서는 값을 할당하는 시점에서 변수의 타입이 동적으로 결정되고 변수의 타입을 언제든지 자유롭게 변경할 수 있습니다.

정리하자면 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론)되고, 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있습니다. 이러한 특징을 동적 타이핑이라고 합니다.

틀린 부분이 있거나 보충해야 할 내용이 있다면 댓글이나 DM(sungstonemin)으로 알려주시면 감사하겠습니다😄

profile
기록하는 개발자

0개의 댓글