[JavaScript] 자바스크립트의 데이터 타입

데이터 타입

ECMAScript의 데이터 타입은 Undefined, Null, Boolean, 숫자, 문자열 그리고 객체로 이루어져 있다. ECMAScript에서는 개발자 임의로 데이터 타입을 정의할 수 없으므로 모든 변수는 여섯 가지 타입 중 하나에 속한다고 할 수 있다.


typeof 연산자

변수에 typeof 연산자를 사용하면 다음 중 하나를 반환한다.

  • 정의되지 않은 변수: “undefined”
  • 불리언: “boolean”
  • 문자열: “string”
  • 함수를 제외한 객체 또는 null: “object”
  • 함수: “function”

typeof 연산자는 변수의 데이터 타입을 알아낼 때 아래와 같이 사용한다.

1
2
3
4
var message = "정일훈 mini album big wave 대박 각";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"

개인적으로 3 라인의 방식(typeof())을 선호한다.


Undefined 타입

자바스크립트는 변수 초기화를 지원한다. 변수를 선언했으나 별도의 초기화가 없었다면 undefined가 자동으로 할당된다.

1
2
var message;
alert(message == undefined); // true

Null 타입

null은 빈 객체를 가리키는 포인터이다. 변수를 초기화할 때 해당 변수가 객체를 가리키게 할 생각이라면 다른 문자 대신 null을 사용하는 것이 좋다.

1
2
var car = null;
alert(typeof(car)); // "object"

null은 다음과 같은 상황에 사용된다.

1
2
3
4
var car = null;
if(car != null) {
// car가 사용되는 코드를 적으면 된다.
}

car가 null이라면 객체가 비었다는 뜻이므로 조건에 부합하지 않는다. 고로, if(car != null)의 의미는, 객체가 사용되었다면이 된다.


Boolean 타입

boolean 타입은 true, false 둘 중 하나의 리터럴 값을 갖는다. 이 값은 숫자와는 다르다. true는 1이 아니며, false는 0이 아니다. 할당 방법은 다음과 같다.

1
2
var isOkay = true;
var isThere = false;

boolean은 단 두 가지 값만 갖지만 ECMAScript에서는 모든 값을 불리언으로 표현할 수 있다. 값을 불리언으로 변환하려면 다음의 함수를 사용하면 된다.

1
2
var message = "비투비 정규 2집은 언제 나오나요";
var messageAsBoolean = Boolean(message); // True

단, 값을 true, false로 변환하는 규칙은 데이터 타입과 값마다 다르다. 아래의 표를 참고하자.

데이터 타입 true로 변환되는 값 false로 변환되는 값
불리언 true flase
문자열 비어 있지 않은 모든 문자열 “”(빈 문자열)
숫자 0이 아닌 모든 숫자(무한대 포함) 0, NaN
객체 모든 객체 null
Undefined 해당 없음 undefined


이 포스트의 모든 내용은 프론트엔드 개발자를 위한 자바스크립트 프로그래밍(인사이트) 책을 참고하여 작성되었습니다.


Share