자료형(데이터 타입)

hh824·2022년 9월 19일

자바스크립트

목록 보기
5/6
post-thumbnail
  • 자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있다.
  • 변수는 어떤 순간에 문자열일 수 있고, 다른 순간엔 숫자가 될 수도 있다.
  • 이처럼 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어를 ‘동적 타입 언어’라고 부른다.

숫자형

  • 숫자형은 정수 및 부동소수점 숫자를 나타낸다.
  • 숫자형에는 일반적인 숫자 외에 Infinity, -Infinity, NaN같은 특수 숫자 값이 포함된다.
    • Infinity는 어떤 숫자보다 더 큰 특수 값, 무한대를 나타낸다.
    • 직접 참조할 수 있으며 어떤 숫자든 0으로 나누면 무한대를 얻을 수 있다.
    • NaN은 계산 중에 에러가 발생했다는 것을 나타내주는 값이다.
    • 부정확하거나 정의되지 않은 수학 연산을 사용하면 계산 중에 에러가 발생하면서 NaN을 반환한다.

BigInt

  • 내부 표현 방식 때문에 자바스크립트에서는 (2의 53승 -1) 보다 큰 값 혹은 -(2의 53승-1)보다 작은 정수는 숫자형을 사용해 나타낼 수 없다.
  • 암호 관련 작업 혹은 높은 정밀도로 작업을 해야할 때는 큰 숫자가 필요하다.
  • BigInt형은 길이에 상관없이 정수를 나타낼 수 있다.
  • BigInt형 값은 정수 리터럴 끝에 n을 붙이면 만들 수 있다.
    // 끝에 'n'이 붙으면 BigInt형 자료입니다.
    const bigInt = 1234567890123456789012345678901234567890n;

문자형

  • 자바스크립트는 문자형을 따옴표로 묶는다.
  • 백틱은 변수나 표현식을 감싼후 ${…}안에 넣어주면 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다.

불린형

  • 불린형은 true와 false 두 가지 값밖에 없는 자료형이다.
  • 불린형은 긍정이나 부정을 나타내는 값을 저장할 때 사용한다.
  • 불린값은 비교 결과를 저장할 때도 사용된다.

‘null’값

  • 자바스크립트의 null은 존재하지 않는 값, 비어 있는 값, 알 수 없는 값을 나타내는데 사용한다.
    let age = null;
    //나이(age)를 알 수 없거나 그 값이 비어있음을 보여줍니다.

undefined 값

  • undefined는 값이 할당되지 않은 상태를 나타낼 때 사용한다.
  • 명시적으로 할당이 가능하지만 권장하지 않음.(비어있거나 알 수 없는 상태라는것을 나타낼 때는 null을 사용하자)

객체와 심볼

  • 객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시 자료형이라고 부른다.
  • 객체는 데이터 컬렉션이나 복잡한 개체를 표현할 수 있다.
  • 심볼형은 객체의 고유한 식별자를 만들 때 사용한다.

typeof 연산자

  • typeof 연산자는 인수의 자료형을 반환한다.
    • 연산자: typeof x
    • 함수: typeof(x)

자바스크립트 딥 다이브

숫자 타입

  • 자바스크립트의 숫자 타입은 정수만을 위한 타입이 없고, 모든 수를 실수로 처리한다.( 정수로 표시된다 해도 사실은 실수이다.)

문자열 타입

  • 자바스크립트의 문자열은 원시 타입이며, 변경 불가능한 값이다.
  • 템플릿 리터럴은 줄바꿈과 공백이 있는 그대로 적용된다.

undefined 타입

  • var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.
  • 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이루어질 때까지 빈 상태(대부분 비어있지 않고 쓰레기 값이 들어 있다.)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다.

심벌 타입

  • 심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다.
  • 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
  • 심벌은 Symbol 함수를 호출해 생성한다.
  • 생성된 심벌값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값이다.

객체 타입

  • 자바스크립트는 객체 기반의 언어이다.
  • 자바스크립트를 이루고 있는 거의 모든 것이 객체이다.

데이터 타입의 필요성

  • 데이터 타입에 의한 메모리 공간의 확보와 참조
    • 값은 메모리에 저장하고 참조할 수 있어야 한다.

    • 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 한다.

      var score = 100;
    • 코드 실행 → 숫자 값 100을 저장하기 위해 메모리 공간 확보 → 확보된 메모리에 숫자 값 100을 2진수로 저장

    • 이러한 처리를 하려면 숫자 값을 저장할 때 확보해야 할 메모리 공간의 크기를 알아야 한다.

    • 자바스크립트 엔진은 데이터 타입, 값의 종류에 따라 정해진 크기의 메모리 공간을 확보한다.

    • 값을 참조하는 경우 식별자 score를 통해 숫자 타입의 값 100이 저장되어 있는 메모리 공간의 주소를 찾아갈 수 있다.

    • score 변수에는 숫자 타입의 값이 할당되어 있으므로 자바스크립트 엔진은 score 변수를 숫자 타입으로 인식한다.

  • 데이터 타입에 의한 값의 해석
    • 메모리에서 읽어 들인 2진수를 어떻게 해석할까?
    • ex) 0100 0001을 숫자로 해석하면 65지만, 문자열로 해석하면 ‘A’다.
    • 변수의 데이터 타입을 해석하여 2진수를 데이터 타입에 맞는것으로 변환한다.

0개의 댓글