HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
📚
3기 스터디 가이드
/
💯
자바스크립트 Deep Dive 스터디
/
🕤
자바스크립트 Deep Dive
/
😀
4장 - 15장
/
🌸
나라
/
📓
06. 데이터 타입
📓

06. 데이터 타입

데이터 타입(data type)

  • 값의 종류
  • 자바스크립트의 모든 값은 데이터 타입을 갖는다
  • 원시 타입(primitive type)과 객체 타입(object/reference type)으로 분류
    • 구분
      데이터 타입
      설명
      원시 타입
      숫자 number
      숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재
      ㅤ
      문자열 string
      문자열
      ㅤ
      불리언 boolean
      논리적 참(true)와 거짓(false)
      ㅤ
      undefined
      var 키워드로 선언된 변수에 암묵적으로 할당되는 값
      ㅤ
      null
      값이 없다는 것을 의도적으로 명시할 때 사용되는 값
      ㅤ
      심벌 Symbol
      ES6에서 추가된 7번째 타입
      객체 타입
      ㅤ
      객체, 함수, 배열 등

숫자 타입

  • 모든 수를 실수로 처리(정수로 표시해도 사실은 실수)
  • 세가지 값도 표현 가능
    • Infinity: 양의 무한대
    • -Infinity: 음의 무한대
    • NaN: 산술 연산 불가(Not a Number)

문자열 타입

  • 텍스트 데이터를 나타내는 데 사용
  • 작은 따옴표, 큰따옴표, 백틱으로 텍스트를 감싼다
  • 템플릿 리터럴(백틱)
    • 멀티라인 문자열 : 줄바꿈 허용
    • 표현식 삽입: ${} 으로 표현식을 감싼다

불리언 타입

  • true, false
  • 프로그램 흐름을 제어하는 조건문에서 자주 사용

undefined 타입

  • 개발자가 의도적으로 할당하기 위한 값이 아닌, 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값
  • var로 선언한 변수는 암묵적으로 undefined로 초기화 됨

null 타입

  • 변수에 값이 없다는 것을 의도적으로 명시할 때 사용
💡
함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null 반환 ex) document.querySelector메서드는 조건에 부합하는 HTML 요소를 검색할 수 없는 경우 에러 대신 null 반환

심벌 타입

  • ES6에서 추가된 7번째 타입
  • 변경 불가능한 원시 타입의 값
  • 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용
  • Symbol 함수를 호출해 생성

객체 타입

  • 위의 6가지 원시타입 이외의 값은 모두 객체 타입
  • 자바스크립트 = 객체 기반의 언어 → 자바스크립트를 이루고 있는 거의 모든 것이 객체
 

데이터 타입의 필요성

  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
  • 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
  • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
 

동적 타이핑

  • 정적 타입(static/stong type) 언어: 변수를 선언할 때 변수에 할당할 수 있는 데이터 타입을 사전에 선언
  • 동적 타입(dynamic/weak type) 언어: 값을 할당하는 시점에 변수의 타입이 동적으로 결정되고 변수의 타입을 자유롭게 변경 가능
    • 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론 type inference)됨
    • 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
    • 동적 타입 언어는 유연성은 높지만 신뢰성은 떨어진다.
      • 변수는 곡 필요한 경우에 한해 제한적으로 사용하자
      • 변수의 스코프는 최대한 좁게 만들어 변수의 부작용을 억제하자
      • 전역 변수는 최대한 피해 사용하자
      • 변수보다는 상수를 사용해 변경을 억제하자
      • 변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍 하자
      •