본문 바로가기

programming study/JavaScript

06장 - 데이터 타입 (2)

본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.

 

6.5 undefined 타입

  • undefined가 유일한 값
  • var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화
  • 엔진에서 사용할 목적의 타입으로 개발자가 의도적으로 사용하는 것은 지양할 것

 

6.6 null 타입

  • null이 유리한 값
  • 변수가 비어있다는 것을 명시적으로 표현할 때 사용
    • 의도적 부재(Intentional Absence)
  • 함수가 유효한 값을 반환하지 않을 때도 null을 반환

 

6.7 심벌 타입

  • ES6에 추가
  • 변경 불가능한 원시 타입 값
  • 다른 값과 중복되지 않는 유일무이한 값
    • 객체의 유일한 프로퍼티 키 생성시 사용
  • Symbol 함수를 호출하여 생성
    • cf) 다른 타입은 리터럴로 생성이 가능

 

6.8 객체 타입

  • 자바스크립트는 객체 기반의 언어라서 거의 모든 것이 객체로 이루어짐
  • 위 타입들을 제외하고 모두 객체 타입

 

6.9 데이터 타입의 필요성

  • 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정
  • 값을 참조 할 때 타입에 따른 단위로 읽어야 함
    • 타입에 따른 단위란, 타입별로 정해진 메모리 공간 크기를 말함
  • 타입별로 값이 저장되는 형식이 달라서 값을 읽을 때 타입에 맞추어 해석해야 함

 

6.10 동적 타이핑

6.10.1 동적 타입 언어 vs. 정적 타입 언어

  • 정적 타입 언어(static/strong type)
    • C, JAVA
    • 명시적 타입 선언(explicit type declaration) : 변수 선언 시 데이터 타입을 사전에 선언
    • 변수 타입을 변경할 수 없고 타입에 맞춘 값만 할당 가능
    • 런타임 발생 에러를 줄임
  • 동적 타입 언어(dynamic type)
    • JavaScript
    • 별도의 타입 선언이 없음
    • 타입 상관 없이 자유롭게 할당
    • 타입 추론(type inference) : 값을 할당하는 시점에 타입이 동적으로 결정
    • 변수의 타입을 자유롭게 변경 가능

 

6.10.2 동적타입 언어와 변수

  • 변화하는 변수 값을 추적하기 어려움
  • 신뢰성이 떨어짐
  • 런타임 에러 발생

'programming study > JavaScript' 카테고리의 다른 글

07장 - 연산자(2)  (0) 2022.01.27
07장 - 연산자(1)  (0) 2022.01.26
06장 - 데이터 타입 (1)  (0) 2022.01.22
05장 - 표현식과 문  (0) 2022.01.19
04장 - 변수  (0) 2022.01.16