3.1) 데이터 타입이란?
- 값의 종류를 의미하며, js의 모든 값은 데이터 타입을 갖는다.
- 숫자, 문자열, 불리언, undefined, null, 심볼, 객체 총 7개의 타입으로 구성된다.
- 종류에 따라 확보할 메모리 공간의 크기, 메모리에 저장되는 2진수, 메모리로부터 읽어들여 해석하는 방식 등이 다르다.
- ex) 숫자 1, 문자 '1' -> 각각 다른 크기의 메모리 할당. 문자 '1'은 산수 연산 불가능.
3.2) 숫자 타입(Number)
- 산수 연산이 가능한 데이터 타입.
- 타 언어와 달리 하나의 숫자 타입(실수)로 모든 연산 처리.
- 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않기 때문에 모든 연산 결과는 10진수로 출력.
- 특별한 세 가지의 값 출력 가능. ex) Infinity, -Infinity, NaN(산술 연산이 불가능한 경우)
3.3) 문자열 타입(String)
- 텍스트 데이터를 나타내는데 사용하는 데이터 타입.
- 작은 따옴표(' '), 큰 따옴표(" "), 백틱(` `) 등으로 표현할 수 있다.
- 따옴표 등 미사용 시 해당 키워드를 식별자로 인식하여 오류가 발생한다.
3.4) 템플릿 리터럴
- ES6에서 도입된 새로운 문자열 표기법이다.
- 백틱(` `)을 사용하여 멀티라인 문자열, 표현식 삽입 등 편리한 문자열 처리 기능을 제공한다.
- ex) 멀티라인 문자열
- ex) 표현식 삽입
3.5) 불리언 타입(boolean)
- 논리적 참, 거짓을 나타내는 true, false 값이다.
- 프로그램의 흐름을 제어하는 조건문에서 자주 사용한다.
3.6) undefined
- undefined 타입의 값은 undefined만 존재한다.
- var 키워드를 사용하여 선언한 변수가 값이 할당되지 않은(초기화되지 않은) 경우, 변수 참조 시 undefined를 반환한다.
- js 엔진이 변수 초기화하는데 사용하는 타입이기 때문에 개발자 의도로 사용하면 안된다. 의도적으로 변수에 값이 없다는 것을 명시하고자 할 때는 null을 할당한다.
3.7) null
- 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
- 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하고 더 이상 참조하지 않는다는 의미이다.
- 아무도 참조하지 않는 값의 메모리 공간은 가비지 컬렉션을 수행합니다.
- ※ 가비지 컬렉션 : 사용하지 않는 메모리 공간의 할당을 해제하는 것.[1]
3.8) 심볼 타입(Symbol)
- ES6에서 추가된 7번재 데이터 타입으로, 변경 불가능한 원시 타입의 값이다.
- 다른 값과 중복되지 않는 유일무이한 값이다. 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
- 생성된 값은 외부로 노출되지 않는다.
- 선택적으로 문자열을 인수로 전달할 수 있다. 이는 심볼 값에 대한 설명 용도로만 사용되며, 심볼 값에 영향을 주지 않는다.
3.9) 객체 타입
- 여러 타입의 값을 동시에 가질 수 있는 복합적인 자료 구조이다.
- 원시 타입의 값과 달리 재할당 없이 객체를 직접 변경하거나 프로퍼티를 동적으로 추가, 갱신, 삭제가 가능하다. 이를 통해 메모리의 성능 향상과 효율적 소비가 가능하다.
3.10) 데이터 타입의 필요성
- 값을 메모리에 저장할 때 메모리 공간의 낭비와 손실 없이 값을 저장할 수 있다.
- 값 참조 시 읽어들일 메모리 공간의 크기를 정할 수 있다.
- 메모리에서 읽어들일 2진수를 어떻게 혹은 어떤 타입으로 해석할지 결정할 수 있다.
3.11) 동적 타이핑
- java와 같은 정적 언어는 할당할 데이터 타입을 미리 선언해야 한다. 또한 선언한 타입을 변경할 수 없으며, 해당 타입에 맞는 값만 할당할 수 있다. (타입 일관성 추구를 통해 안정적인 코드를 생산)
- js와 같은 동적 언어는 선언이 아닌 할당 시점에 타입을 결정한다. 또한 재할당을 통해 변수 타입을 변환할 수 있다.
- 동적 언어는 자유로운 할당이 가능하지만 변화하는 타입과 값을 추적하기 어렵고, 개발자의 의도와 다르게 동작할 수 있다. 따라서 안정적인 프로그램을 만들기 위해 다음과 같은 규칙을 준수해야 한다.
|
출처 및 참고 자료
[1] 가비지 컬렉션
https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
Garbage collection (computer science) - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Form of automatic memory management This article is about garbage collection in memory management. For garbage collection in a solid-state drive, see garbage collection (SSD). Stop-and
en.wikipedia.org
[2] 모던 자바스크립트 deep dive / 위키북스 / 이응모
반응형
LIST
댓글