DYO 공부하는 블로그

[JS] JavaScript의 데이터 타입 본문

JS

[JS] JavaScript의 데이터 타입

DYODa 2025. 5. 29. 16:34

자료형의 선언

  • var : 전역으로 선언되는 선언문, 재선언이 가능함
  • let : var와 용도가 유사하지만 선언된 자리의 위에서 참조하지 못하도록 막힌 선언문, 제선언 불가능
  • const : 한 번 선언하면 바꿀 수 없는 ‘상수’형 변수를 선언하는 선언문

원시 자료형

  • 자료형이란, 변수에 저장된 자료의 값이나 형태이다.
  • JS의 변수는 JAVA, C 등과 다르게 한번 정의된 자료형에서 고정되는 것이 아니라 초기화한 값의 형태에 따라 언제든 바꿀수 있는 동적 타입(dynamically typed)이다.

숫자형(number) : Number

  • 숫자형은 정수 및 부동소수점 숫자(소수)를 나타내며, 곱셈 *, 나눗셈 /, 덧셈 +, 뺄셈 - 등의 연산이 가능하다.
  • 무한대를 나타내는 예약어 Infinity 또한 Number타입이며, a / 27 과 같은 연산을 했을 때는 NaN이 된다. a + 27과 같은 형태는 자동 형변환에 의해서 a27 같은 형태가 된다.
  • BigInt : 2^53-1 (9007199254740991) 보다 큰 값이나 -2^53-1 (-9007199254740991)보다 작은 값은 Number 타입을 이용해 나타낼 수 없다. 그 이상의 값을 나타내기 위해서
    const bigInt = 1234567890123456789012345678901234567890n;
    숫자 뒤에 n을 붙이는 방식으로 그 이상으로 큰 수를 표현할 수 있다. (사실 쓸 일 거의 없음.)

문자형(string) : String

  • 단일 문자나 문자열을 통틀어 string으로 표현한다.
  • ‘’ == “” 자바스크립트에서는 일반적인 언어에서 나타내는 char형태를 정의하는 ‘와 “를 구분하지 않는다. 이 둘의 기능은 동일하다.
  • let name = “비빔 인간”; console.log(저는 ${name}입니다)
    result : 저는 비빔 인간입니다.
    `(백틱)을 이용해 ${변수명}을 끼워넣어 문자열 중간에 변수를 삽입할 수 있다. 백틱 사이에는 몇개가 들어가든 상관이 없고, ${1+2}와 같은 연산 작업도 가능하다.

불린형(boolean) : Boolean

  • true, false 두 가지 값 뿐인 자료형이다. 긍정이나 부정의 값을 나타낼 때 사용하며, true 는 긍정, false 는 부정을 의미한다
  • 4 > 1true, 4 < 1false 와 같이 논리식의 결과로 나오는 자료형이다.

값(그래도 자료형)

null

  • null 값은 위에서 정의한 어떤 자료형에도 속하지 않는다.
  • null은 비어 있는(empty)값, 존재하지 않는(nothing) 값, 알 수 없는(unknown) 값을 정의하기 위해서 개발자가 사용하는 자료형이다.
  • null 은 개발자가 직접 지정함으로써 사용될 수 있다.

‘undefined’ 값

  • undefined 값은 개발자가 직접 지정하는 null 값과 다르게, 개발자가 변수를 ‘초기화하지 않았을 때’ undefined 값이 된다.
let age = 100;

// 값을 undefined로 바꿉니다.
age = undefined;

alert(age); // "undefined"

위와 같은 형태로 명시적으로 값을 부여할 수는 있지만 권장되진 않는다.

특수한 자료형

객체(Object)

  • 원시 객체보다 복잡한 개체(entity)를 표현할 수 있는 자료형이고, 흔히 쓰는 배열 Array , 맵(Map) , 셋(Set) 등과 같이 단일 요소가 아니라 여러 개의 복잡한 형태로 2차원, 3차원 형태로 값을 쌓을 수 있거나 참조에 차이가 있거나 하는 형태로 존재한다.
  • JS에서와 다른 언어와 차이점( 이름만 다르고 기능은 거의 동일 )
    • Array : 동일하게 [] or new Array()
    • Map : Python의 Dict, JAVA의 Map
    • Set : Python의 Set, JAVA의 HashSet

심볼(Symbol)

  • 심볼은 특수한 식별자를 만들고 싶을 때 사용할 수 있다. Symbol(’id’)와 같은 형태로 생성할 수 있다.