[read] 모자딥 - 06장. 데이터 타입

Jenna·2025년 3월 31일
0

js-deepdive

목록 보기
6/6

데이터 타입은 값의 종류를 말한다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.

구분데이터 타입
원시타입숫자 타입 (number)
문자 타입 (string)
불리언 타입 (boolean)
undefined 타입
null 타입
심벌 타입 (symbol)
객체 타입객체타입

예를 들어, 숫자 1 과 문자열 '1'은 전혀 다른 값이다. 자바스크립트 엔진은 타입을 구별해서 값을 취급할 것이다.

6.1 숫자 타입

  • c나 자바의 경우는 int, long, float, double 등과 같은 다양한 숫자 타입을 제공하는 반면에, 자바스크립트는 독특하게 하나의 숫자 타입만 존재한다.
  • 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. 모든 수를 실수로 처리하며, 정수만 표현하기 위한 테이터 타입이 별도로 존재하지 않는다.
1 === 1.0 // true
  • 숫자 타입은 추가적으로 세 가지 특별한 값도 표현할 수 있다.
    - Infinity, -Infinity, NaN(not-a-number)

6.2 문자열 타입

  • 문자열 타입은 텍스트 데이터를 나타내는 데 사용한다. 작은따옴표, 큰따옴표, 백틱으로 텍스트를 감싼다. 자바스크립트에서 가장 일반적인 표기법은 작은따옴표('')를 사용한다.

6.3 템플릿 리터럴

  • 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리 기능을 제공하기 위한 기능이다.
  • 백틱(``)을 사용해 표현한다.
  • 표현식을 삽입하기 위해서는 ${}으로 표현식을 감싼다
console.log(`1+2 = ${1+2}`)

6.4 불리언 타입

  • 논리적 참, 거짓을 나타내는 true, false

6.5 undefined 타입

  • undefined 타입은 undefined가 유일
  • 변수 초기화는 암묵적으로 undefined로 이루어진다. 개발자가 변수에 값이 없다는 것을 명시하고 싶을 땐 undefined보다 null을 사용해야한다.

6.6 null 타입

  • null이 유일하다. 대소문자를 구분함.
  • 의도적 부재를 명시할 때 사용한다. 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미이다.

6.7 심벌 타입

  • ES6에서 추가된 7번째 타입으로 변경 불가능한 원시의 타입이다. 다른 값과 중복되지 않는 유일무이한 값.

6.8 객체 타입

  • 자바스크립트를 이루고 있는 거의 모든 것이 객체. 6가지 데이터 타입 이외의 값은 모두 객체타입이다.

6.9 데이터 타입의 필요성

  • 데이터 타입에 의한 메모리 공간의 확보와 참조에 따른 필요성
  • 데이터 타입에 의한 값의 해석에 따른 필요성
    - 0100 0001을 숫자로 해석하면 65, 문자열로 해석하면 'A'

6.10 동적 타이핑

  • c나 자바 같은 정적 타입 언어는 변수를 선언할 때 데이터 타입을 사전에 선언함. 이를 명시적 타입 선언 이라고 한다.
  • 정적 타입 언어는 컴파일 시점에 타입 체크를 수행한다.
  • 자바스크립트는 정적 타입 언어와 다르게 변수를 선언할 때 타입을 선언하지 않음. var, let, const 키워드를 활용해 변수를 선언. 따라서 어떠한 데이터 타입의 값이라도 자유롭게 할당할 수 있다.
  • 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 재할당에 의해 변수의 타입은 언제든 동적으로 변할 수 있다. 이러한 특징을 동적 타이핑이라고 한다.
  • 동적 타입 언어는 유연성은 높지만 신뢰성은 떨어진다.
profile
FE/Game Dev.

0개의 댓글