본 문서는 "모던 자바스크림트 DeepDive"를 데일리로 학습하며 기억할 부분과 추가학습한 부분을 공유한다.
1. 원시타입(primitive type)과 객체타입(object/reference type)
- 객체타입 : 객체, 함수, 배열을 포함한다.
- 원시타입 : 객체타입외의 타입이 모두 해당된다. (number, string, Boolean, undefined, null, symbol)
2. 숫자 타입
- 64비트 부동소수점 형식 따른다. <-> C나 자바 : 정수, 실수 구분 (isn't, long, float, double)
- 부동소수점(Floating Point) : 실수(소수점 있는 수)를 컴퓨터가 표현하기 위해 사용하는 이진 기반의 근사값 표현 방식
- 부동 : 소수점 위치가 고정되어있지 않다. (정수: 자릿수 고정, 부동 소수저미 소수점 자유이동)
- NaN : 산술 연산 불가(not-a-number) => 대소문자 구별 주의 (case-sensitive)
3. 문자열 타입
- ASCII를 사용했으나 더 많은 언어 대응이 필요하여 등장
- UTF-16 : 문자 인코딩 방식(Unicode Transformation Format)
- 이모지 : 4bit로 JS에서 두칸을 차지한다.
- 일반적으로 작은 따옴표 사용 => 키워드/식별자와의 구별을 위함
- 원시타입이므로 참조값이 아닌 원시값. 독립적이다. (깊은 복사) <-> 참조값: 연결된다 (얕은 복사)
4. 템플릿 리터럴
- 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 문자열 처리기능
- 멀티라인 문자열 : 줄바꿈, 공백등 표시시 백슬레시 이스케이프 시퀀스
- 런타임에서 일반 문자열로 변환
- 벡틱(`)사용
5. Undefined 타입
- Undefined가 유일하다.
- 변수초기화시 사용하므로, 개발자가 직접입력하는 것은 좋지 않으며, 이때는 null을 사용한다.
6.. null 타입
- 의도적부재(intentional absense) 명시
- 참조 명시적제거, 가비지 콜렉션
- Null 을 할당한다고 해서 유용하지는 않다. 변수가 사라지지 않아 메모리 절약이되거나 스코프 줄이는 역할이 되지않는다.
=> 블록 안에서만 유효하게 마들도록 스코프를 줄이는 것이 낫다. - Document에서 찾지 못한 경우 null 을 반환한다.
7. Symbol 타입
- 이름 충돌 위험이 없는 객체의 유일한 프로퍼티 키 생성 시 사용
- 전역 심벌 테이블 : Symbol.for('id') 은 전역에 설정되어 해당 값은 하나를 가짐. 여러변수에 새로 할당되어도 동일한 값이다.
8. 데이터타입의 중요성
- 데이터 타입에 따라서 값을 해석한다.
- 값 저장시 메모리 공간 크기 결정
- 참조시 메모리 공간 크기 결정
- 메모리에서 읽은 2진수 해석 방법 결정
'Daily Morning Study' 카테고리의 다른 글
[모던 자바스크립트 DeepDive] 8일차 - 동적 타이핑 (3) | 2025.07.29 |
---|---|
[모던 자바스크립트 DeepDive] 6일차 - 표현식과 문 (1) | 2025.07.04 |
[모던 자바스크립트 DeepDive] 5일차 - 변수2 (2) | 2025.07.03 |
[모던 자바스크립트 DeepDive] 4일차 - Vscode 확장 플러그인, 변수 (2) | 2025.07.01 |
[모던 자바스크립트 DeepDive] 3일차 - 개발자도구, Node (1) | 2025.06.30 |