<모던 자바스크립트 Deep Dive - 제 06장(2)>

2023. 02. 02
6.9 데이터 타입의 필요성)
자바스크립트에서 데이터 타입은 왜 필요할까?
다음과 같은 두가지 이유에 의해 데이터 타입은 필요하다.
① 데이터 타입에 의한 메모리 공간의 확보와 참조
값은 메모리에 저장되고, 참조할 수 있어야한다.
메모리에 값을 저장하기 위해서는 확보해야 할 메모리 공간의 크기를 결정해야한다.
즉, 몇 바이트의 메모리 공간을 사용해야 낭비없이 값을 저장할 수 있는지 알아야한다.
이때 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.
ex) const score = 100;
위의 예시에서 자바스크립트 엔진은 100 이라는 값을 숫자 타입이라고 해석하고
숫자 타입을 저장하기 위한 메모리 공간을 확보하게 된다.
값을 참조하는 경우에는 변수 score를 통해
100이 저장되어 있는 메모리 공간의 주소를 찾아갈 수 있다.
이때 변수 score에는 숫자 타입의 값이 할당되어 있기 때문에
자바스크립트 엔진은 score를 숫자 타입으로 인식한다.
숫자 타입은 8바이트 단위로 저장되기 때문에 8바이트 단위로
메모리 공간에 저장된 값을 읽어 들인다.
② 데이터 타입에 의한 값의 해석
모든 값들은 메모리에 2진수, 비트의 나열로 저장된다.
메모리에 저장된 이 값들은 데이터의 타입에 따라 그 해석이 달라질 수 있다.
ex) 0100 0001위의 예시에 값은 숫자로 해석하면 65지만, 문자열 데이터 타입으로 해석하면 'A'다.따라서 데이터 타입이 무엇이냐에 따라 불러오는 값을 해석하기 때문에데이터 타입이 필요하다.
6.10 동적 타이핑)
① 동적 타입 언어와 정적 타입 언어
변수는 데이터 타입을 가질까?
C나 자바는 정적 타입의 언어다.
이런 정적 타입의 언어는 변수를 선언할 때 변수에 할당할 수 있는 값의 종류를
사전에 선언해야한다. (명시적 타입 선언)
ex) char c;
int num;
위의 예시처럼 c 변수에는 선언한 char 에 해당하는 1바이트 정수 타입의 값만 할당할 수 있으며,
num 변수에는 선언한 int에 해당하는 4바이트의 정수 타입의 값만 할당할 수 있다.
이런 정적 타입의 언어는 변수 타입을 변경할 수 없다.
정적 타입의 언어는 컴파일 시점에 타입 체크를 수행한다.
타입 체크를 통해 선언한 데이터 타입에 맞는 값을 할당했는지 검사하고
타입 체크를 통과하지 못했다면 프로그램의 실행을 막는다.
반면 자바스크립트는 동적 타입의 언어다.
자바스크립트는 값을 할당하는 시점에 변수의 타입이 동적으로 결정되고
변수의 타입을 언제든지 자유롭게 변경할 수 있다.
즉, 자바스크립트의 변수는 선언이 아닌 할당에 의해서 타입이 결정된다. (이를 타입 추론이라고 함)
② 동적 타입 언어와 변수
X
https://link.coupang.com/a/F6ksK
모던 자바스크립트 Deep Dive:자바스크립트의 기본 개념과 동작 원리
COUPANG
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'개발 > HTML+CSS+JS' 카테고리의 다른 글
Window에 MongoDB 다운받기 (0) | 2023.02.12 |
---|---|
모던 자바스크립트 Deep Dive - 제 07장 (0) | 2023.02.08 |
모던 자바스크립트 Deep Dive - 제 06장(1) (0) | 2023.01.31 |
모던 자바스크립트 Deep Dive - 제 5장 (0) | 2023.01.27 |
모던 자바스크립트 Deep Dive - 제 4장 (2) | 2023.01.26 |