본문 바로가기
개발(Development)/JS(자바스크립트)

[JS] 자바스크립트 데이터 타입: 기본 타입(원시 타입)

by 카레유 2020. 10. 9.

# 자바스크립트의 데이터 타입

1. 기본 타입(원시 타입: Primitive Type)

  1) 숫자(number)

  2) 문자열(string)

  3) 불린값(boolean)

  4) undefined

  5) null

  6) 심벌(symbol)

 

2. 참조 타입(객체 타입: Object/Reference Type)

  1) 객체

  2) 배열

  3) 함수

  4) 정규 표현식

   * 배열, 함수, 정규표현식도 모두 객체다.

 

<이번 포스팅은 기본 타입에 대해서만 정리한다.>


# 기본 타입(원시 타입: Primitive Type)

1) 숫자(number): 64비트 부동소수점 형식으로, 모든 숫자를 실수로 처리한다.

var num_01 = 10; // 정수도 실수로 처리한다.
var num_02 = -10.05; // 실수
var num_03 = 10/0; // +Infinity
var num_04 = 10/-0; // -Infinity
var num_05 = 1 * 'str'; // NaN
console.log(typeof num_01) // number

 

 

2) 문자열(string): 16비트 유니코드 문자셋(UTF-16)으로 구성된 문자열

   * 작은따옴표(''), 큰따옴표(""), 템플릿 리터럴(``)으로 문자열을 할당할 수 있다.

   * 특히, ES6부터 도입된 템플릿 리터럴을 이용하면, 줄바꿈이나 공백이 모두 적용된다.

var str_01 = 'hello';
console.log(typeof str_01) // string

var str_02 = `Hi!
					I am 카레유
								nice to meet you`;
console.log(str_02);

<str_02 출력 결과 : 탭, 공백, 줄바꿈 등이 다 적용된다>

 

 

3) 불리언(boolean): true, false

var bool_01 = true
console.log(typeof bool_01); // boolean

 

 

4) undefined: 값이 할당되지 않았을 때, 자바스크립트 엔진이 암묵적으로 초기화하는 값(타입도 값도 모두 undefined)

var undef_01;
console.log(undef_01); // undefined
console.log(typeof undef_01); // undefined

 

 

5) null: 의도적으로 '값이 없음'을 명시하기 위해 할당하는 값

    * null 타입의 type of 연산 결과는 null이 아니라 object이므로 주의 필요!

    * 기본 데이터 타입은 객체가 아닌데? 초기 자바스크립트의 버그다... 수정하면 파장이 클까봐 그냥 두고 있다.

    * 따라서 null 값 체크를 위해서는 === 일치 연산자를 사용하는게 좋다.

var null_01 = null;
console.log(null_01); // null
console.log(typeof null_01); // object

▶(참고) [JS] 자바스크립트 null은 객체? 기본 타입? (typeof null)

 

 

6) 심벌(symbol): ES6부터 새로 생긴 데이터 타입.

    * 변경불가능한 유일한 값을 생성할 때 사용하며, 값 자체의 확인이 불가하여 외부로 노출되지 않는다.

var sym_01 = Symbol('key');
console.log(typeof sym_01); // symbol



 

# 동적 타이핑

자바스크립트는 데이터 타입을 바꿀 수 있는 동적 타입 언어다.

숫자가 할당된 변수라도 문자열이나 불리언 값을 재할당할 수 있다.

 

1) 숫자형 변수 선언

var num_05 = 10;
console.log(typeof num_05); // number

 

 

2) 문자열 재할당

num_05 = 'str';
console.log(typeof num_05); // string

 

 

3) 불리언 재할당

num_05 = true
console.log(typeof num_05); // boolean

 

 

 

# 기본타입의 표준 메서드

숫자, 문자열, 불리언, 심벌 타입은 객체가 아니지만, 표준메서드가 정의되어 있어서 객체처럼 호출 가능하다.

표준메서드를 호출할 때만 일시적으로 객체로 변환되었다가, 호출이 완료되면 다시 기본타입으로 돌아간다.

 

1) 숫자 타입

var num = 777;
num.toExponential(2); // 7.77e+2

 

 

2) 문자열 타입

var str = 'hello';
str.toUpperCase(); // HELLO

 

 

3) 불리언 타입

var bool = true;
bool.valueOf(); // true

 

 

4) 심벌 타입

var sym = Symbol('key');
sym.toString()  // Symbol(key)

 

▶ (참고) 표준 메서드 호출에 대한 상세한 내용

[JS] 자바스크립트 래퍼 객체 (기본/원시타입 표준메서드)


자바스크립트 기본 데이터 타입 정리 끝.

댓글