06. 데이터타입 - 모던자바스크립트 DeepDive

seunghw·2022년 1월 27일
0
post-thumbnail

데이터 타입?

데이터 타입은 값의 종류. 자바스크립트의 모든 값은 데이터 타입을 갖는다.

JavaScript 언어의 타입은 원시 값과 객체로 나뉜다.

  • 원시 값 (언어의 최고 로우레벨에서 직접 표현되는 불변 데이터)
    • Boolean 타입
    • Null 타입
    • Undefined 타입
    • Number 타입
    • BigInt 타입
    • String 타입
    • Symbol 타입
  • 객체 (속성의 컬렉션)

1. 숫자 타입

  • 숫자타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. 즉, 모든 수를 실수로 처리하며 정수만 표현하기 위한 데이터 타입이 존재하지 않음.
  • 모든 수를 실수로 처리( 정수로 보여도 사실은 실수 )

1.1 특별한 값

  • Infinity : 양의 무한대
  • -Infinity : 음의 무한대
  • NaN : 산술 연산 불가

2. 문자열 타입

문자열 타입은 텍스트 테이터를 나타내는데에 사용. js에서 기본은 작은 따옴표사용하는 것.

자바스크립트의 문자열은 원시 타입이며, 변경 불가능한 값.

3. 템플릿 리터럴

  • ES6부터 도입되었다.
  • 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리기능 제공.
  • 일반 문자열로 변환되어 차리.
  • 일반적으로 (``)백틱을 사용

Template literals - JavaScript | MDN

4. 불리언 타입

논리적 참, 거짓을 나타내는 ture, false이다.

5. undefined 타입

-var 선언시 암묵적으로 undefined으로 초기화된다.

  • 즉, 할당이 아니라 초기화 할 때 쓰는 값.
  • 변수에 값이 없다는 것을 명시하고 싶을 때 undefined가 아니라 null을 쓰도록 하자.

6. null 타입

Null 타입은 null 하나의 값만 가질 수 있다.

7. 심벌 타입

Symbol은 고유하고 변경 불가능한 원시 값이며 객체의 속성키로 사용할 수 있습니다. 어떤 프로그래밍 언어들에선 "아톰"이라고 부르기도 합니다. 다른 값과 절대 중복되지 않는 유일무이한 값.

8. 객체 타입

식별자로 참조할 수 있는 메모리 상의 값.

자바스크립트를 이루고 있는 거의 모든 것이 객체.

9. 데이터 타입의 필요성

  1. 데이터 타입에 의한 메모리 공간의 확보와 참조.

-값은 메모리에 저장하고 참조할 수 있어야 한다. 즉, 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야한다.

  1. 데이터 타입에 의한 값의 해석

-메모리에서 읽어 들인 2진수를 어떻게 해석해야 하느냐가 문제

즉, 필요성은 다음과 같다.

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

10. 동적타이핑

자바스크립트는 변수를 선언할 때 타입을 선언하지 않는다. 그저 var,let, const로 선언할 뿐이다.

자유롭게 할당이 가능하다.

즉, 자바스크립트의 변수는 선언이 아니라 할당에 의해 타입이 결정된다. - 타입추론

또한 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다. 이러한 특징을 동적 타이핑이라고 한다.

동적 타입 언어는 유연성은 높지만 신뢰성이 떨어져서 다음 주의사항을 생각해야한다.

  • 변수는 꼭 필요한 경우에 한해 제한적으로 사용
  • 변수의 유효 범위(스코프)는 최대한 좁게 만들어 변수의 부작용을 억제해야한다.
  • 전역변수는 최대한 사용하지 않도록한다. 프로그램의 복잡성을 증가시키고 처리 흐름을 추적하기 얼벼게 만들고 오류의 원인을 특정하기 어렵게 만든다.
  • 변수보다는 상수를 사용해 값의 변경을 억제한다.
  • 변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다.
profile
Lumos

0개의 댓글