Javascript | datatype

모든 언어는 활용할 데이터의 자료형(data type) 을 가지고 있습니다. 자바스크립트가 가지고 있는 데이터의 형식이 어떻게 구성되어 있는지 살펴 보겠습니다.

원시 타입(primitive type)

숫자(number)

  • 자바스크립트의 숫자는 정수와 실수의 구분이 없음
1
2
372
372.3
  • 표현 가능 범위

    1
    -9007199254740992(-2^53) ~ 9007199254740992(2^53)
  • 10진수, 16진수 정수 값을 인식합니다.(8진수는 허용 가능하지만 ECMAScript5의 엄격 모드에서는 금지)

  • 부동소수점으로 실수를 표현 합니다.

  • 기본적인 사칙연산 +, -, *, /나머지(%) 연산이 가능 합니다.( 괄호()를 통해 우선 순위를 지정할 수 있음)

  • 표현 가능 범위를 넘었을 경우(overflow) => infinity (or -infinity) 출력합니다.

  • 표현할 수 있는 가장 작은 값보다 0에 가까울 때(underflow) => 0 (or -0) 출력합니다.

  • 정상적인 값을 얻지 못할 때 NaN 를 출력합니다. (isNaN() 함수를 통해 확인 가능)

문자열(string)

  • 자바스크립트는 유니코드 문자열 집합으로 UTF-16 을 사용합니다.

  • 하나의 문자를 위한 타입은 존재하지 않습니다.

  • 하나의 문자도 16비트 유니코드의 길이 1의 문자열 입니다.

  • 문자열 표기는 "", '' 안에 문자를 넣습니다.("" 를 사용하는 것이 권장 됩니다.)

1
2
3
4
5
6
"안녕하세요"
'안녕하세요'
<문자열 내부에 '',"" 넣기>
"제 이름은 '372' 입니다"
'제 이름은 "372" 입니다'
  • 배열과 같지 않지만 프로퍼티인 lenthindexOf(), concat() 등의 메서드를 수행할 수 있습니다.

  • 문자열은 변경되지 않고 메서드 수행 이후 새로운 값이 생성 됩니다.

부울린(boolean)

  • 참(true) / 거짓(false) 값으로 리턴되는 값으로 보통 값을 비교하여 생성됩니다.
1
2
372 == "삼치리"
false
  • AND 연산 &&, OR 연산 || 이 사용 가능합니다.

null / undefined

  • null : 값이 없을 때 리턴 됩니다. (nil 로 표기 가능)

  • undefined : 값이 없을 때 리턴 되는 것으로는 null 과 같습니다만 초기화 되어있지 않은 변수,만 존재하지 않는 객체 프로퍼티나 배열의 원소 를 호출 할 때 나타납니다.

    읽기 전용으로서 타입이면서 값입니다.

1
2
3
4
5
null == undefined
true
null === undefined
false
  • 어떠한 메서드나 프로퍼티를 가지고 있지 않습니다.

객체 타입(object type)

원시 타입 외 배열(array),함수(function), 정규 표현식(regExp) 은 모두 객체 입니다. 이 내용은 한 포스팅으로 담기에는 내용이 많으므로 후에 따로 다루기로 합니다.


자바스크립트의 데이터타입의 구성을 알아보았습니다. 다른 프로그래밍 언어하고 비교하면 데이터타입의 종류도 적고 타입시스템도 약한 편입니다만 타입의 구성을 잘 파악하고 프로그래밍 해야겠습니다.

web javascript