FrontEnd/JavaScript

6장 데이터 타입

CoderHan 2021. 12. 10. 17:34
반응형
원시 타입 숫자 타입 숫자. 정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열 타입 문자열
불리언 타입 논리적 참과 거짓
undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값
null 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값
심벌 타입 ES6에서 추가된 7번째 타입
객체 타입 객체, 함수, 배열 등

개발자는 명확한 의도를 가지고 타입을 구별해서 값을 생성할 것이고,

자바스크립트 엔진은 타입을 구별해서 값을 취급할 것이다.

6.1 숫자 타입

자바스크립트의 숫자 타입은 정수만을 위한 타입이 없고 모든 수를 시룻로 처리한다고 했다.

NaN을 NAN, Nan, nana으로 표현하면 에러가 발생하므로 주의해야 한다.

6.2 문자열 타입

문자열은 작은따옴표(''), 큰따옴표(""), 또는 백틱(``)으로 텍스트를 감싼다.

만약 따옴표로 문자열을 감싸지 않는다면 스페이스와 같은 공백 문자도 포함시킬 수 없다.

6.3 템플릿 리터럴

일반 문자열 내에서는 줄바꿈이 허용되지 않는다.

따라서 일반 문자열 내 줄바꿈 등의 공백을 표현하려면 이스케이프시퀸스를 사용해야 한다.

|0 Null |b 백스페이스
|f 폼 피드 |n 개행, 다음 행으로 이동
|r 개행, 커서를 처음으로 |t 탭(수평)
|v 탭(수직) |uXXXX 유니코드
|' 작은따옴표 |" 큰따옴표
|| 백슬래시    

표현식을 삽입하려면 ${}로 표현식을 감싼다.

6.5 Undefined 타입

var키워드로 선언된 변수는 암묵적으로 undefined로 초기화된다.

6.6 null타입

프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.

함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.

6.7 심벌 타입

심벌은 변경 불가능한 원시 타입의 값이다.

유일한 프로퍼티 키를 만들기 위해 사용한다.

심벌은 Symbol 함수를 호출해 생성한다.

6.9 데이터 타입의 필요성

값은 메모리에 저장하고 참조할 수 있어야 한다.

변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.

변수에는 숫자 타입의 값이 할당되어 있으므로 자바스크립트 엔진은 score 변수를 숫자 타입으로 인식한다.

데이터 타입이 필요한 이유는 다음과 같다

  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결저아기 위해
  • 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
  • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

6.10 동적 타이핑

자바스크립트의 변수는 정적 타입 언어와 같이 미리 선언한 데이터 타입의 값만 할당할 수 있는 것이 아니다.

어떠한 데이터 타입의 값이라도 자유롭게 할당할 수 있다.

기본적으로 변수는 타입을 갖지 않는다. 하지만 값은 타입을 갖는다.

동적 타입 언어의 변수는 값을 확인하기 전에는 타입을 확신할 수 없다

  • 변수는 꼭 필요한 경우에 한해 제한적으로 사용한다.
  • 변수의 유효 범위는 최대한 좁게 만들어 변수의 부작용을 억제해야 한다.
  • 전역 변수는 최대한 사용하지 않도록 한다.
  • 변수보다는 상수를 사용해 값의 변경을 억제한다
  • 변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다.

위 내용은 모던 자바스크립트 Deep Dive를 공부한 내용으로

책의 내용의 일부를 포함하고 있습니다.

 

반응형