2023. 7. 25. 21:52ㆍ스터디/모던자바스크립트딥다이브
데이터 타입
데이터 타입 = 타입 = 값의 종류
ES6부터 7개의 데이터 타입을 제공
- 원시타입
- 숫자
- 문자열
- 불리언
- undefined
- null
- symbol
- 객체타입
- 숫자타입
- 자바스크립트는 하나의 숫자 타입만 존재한다. ( 다른 언어들은 int, integer, long ... 많음)
- 모든 수는 실수
- 64비트 부동소수점 형식
- 양의 무한대/음의 무한대/Not a Number = NaN
- NaN ≠ Nan ≠ nan, ****Only NaN means 'Not a Number'
문자열타입
- '' 작은 따옴표
- "" 큰 따옴표
- ``백틱멀티라인, 공백
자바스크립트의 문자열은 원시 타입이며, 변경 불가능한 값이다. 이것은 문자열이 생성되면 그 문자열을 변경할 수 없다는 것을 의미한다.
불리언타입
true, false
undefined타입
undefined가 유일
자바스크립트 엔진이 메모리 공간을 확보한 다음 초기화 할때 주로 사용한다.
개발자가 의도적으로 빈 값임을 표현하기 위해 undefined를 사용하는 것은 지양된다. (이런 경우가 있다면 null을 쓰는것을 지향)
| 자바스크립트 엔진에 의해 묵시적으로 false로 평가되는 값은 null, '', undefiend인데 서로 성격이 조금씩 다르네..
null타입
null 유일
null ≠ Null ≠ NULL, ****Only null means '의도적 부재'
함수에서 값이 반환하지 않거나 되지 않을 경우 null을 반환하기도 한다. (undefined가 반환되는 것이 타당하다는 의견도 있음)
symbol타입
원시타입
Symbol 함수를 통해서만 생성됨var Key = Symbol('key');
외부에 노출되지 않으며, 다른 값과 중복 되지 않는 유일 무이한 값
|Q. 소스 코드 상 외부에 노출 되지 않으면서 유일해야하는 코드성 데이터들에 사용하는 걸까? 사용 용례가 궁금하다.
객체타입
자바스크립트는 객체 기반 언어
원시 타입 ↔︎ 객체타입
11장 참고객체타입은 변경 가능한 값을 뜻한다.원시타입은 변경 불가능한 값을 뜻한다.객체타입을 복사해서 다른 변수에 할당 할 경우 해당 객체 타입의 주소값이 두번 째 변수의 메모리 공간에 저장됨. (바로가기 개념)원시타입을 복사해서 다른 변수에 할당 할 경우 해당 원시 타입의 원시값이 두번 째 변수의 메모리 공간에 값 자체가 저장된다. (복사 개념)
데이터타입의 필요성
값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
값을 참조할 때 한 번에 읽어야 하는 메모리 공간의 크기를 파악하기 위해
메모리에서 읽어들인 01010101 어쩌고 2진수를 어떻게 해석할지 결정하기 위해같은 2진수라도 어떨땐 문자열 A 어떨 땐 숫자 25
동적타이핑 vs 정적타이핑
자바스크립트의 모든 값은 타입을 가진다.
동적타이핑
변수에 할당된 값에 따라서 타입이 결정된다.
정적타이핑
변수를 선언할 때 할당 할 수 있는 값의 종류, 즉 타입을 지정해준다.
'스터디 > 모던자바스크립트딥다이브' 카테고리의 다른 글
[모던자바스크립트 딥다이브] 11장 객체 리터럴 (0) | 2023.07.25 |
---|---|
[모던자바스크립트 딥다이브] 10장 객체 리터럴 (0) | 2023.07.25 |
[모던자바스크립트 딥다이브] 09장 타입 변환과 단축 평가 (0) | 2023.07.25 |
[모던자바스크립트 딥다이브] 05장 표현식과 문 (0) | 2023.07.25 |
[모던자바스크립트 딥다이브] 04장 변수 (0) | 2023.07.25 |