본 내용은 모던 자바스크립트 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 |