모던 자바스크립트 Deep Dive - 6장

박상은·2021년 9월 28일
0

정리

1. 데이터타입

데이터타입의 존재 이유
1. 저장할 메모리공간의 크기를 지정하기 위해서
2. 참조할 때 한번에 읽을 메모리공간의 크기를 지정하기 위해서
3. 메모리에서 읽는 2진수를 해석할 방법을 알기 위해서 ( 65와 "A"의 차이 )

1.1 원시타입

number, string, boolean, undefined, null, symbol 타입이 존재

  1. 숫자타입: Infinity, -Infinity, NaN이 존재
  2. 문자열타입
  3. 불리언타입
  4. undefined타입: 자바스크립트엔진에 의해 초기화되는 값
  5. null타입: 개발자가 의도적으로 초기화한 값
  6. symbol타입: 다른 값과 중복되지 않는 유일한 값

1.2 객체타입

object, array, function이 존재

2. 정적타입언어와 동적타입언어

  • 정적타입언어는 변수를 선언할 때 변수에 할당될 값을 타입을 미리 정의해야 한다. ( 명시적선언 )
  • 동적타입언어는 변수를 선언할 때 타입을 선언하지않는다.
  • 동적타이핑은 재할당에 의해 변수의 타입이 언제든지 동적을 변할 수 있음을 의미

동적타입언어는 변수가 타입을 가지는 것이 아닌, 변수에 할당된 값이 타입을 가진다.

// 변수인 x가 정수타입을 가지는 것이 아닌, 변수에 할당된 값인 10이 정수타입을 가지는 것임
let x = 10;

// 동적타이핑
x = "string";

마무리

JavaScript같은 동적타입언어는 변수에 어떤 자료형도 들어갈 수 있어서 자료형에 대해 굳이 신경쓰지 않아도 된다는 장점이 있지만, 다른 관점에서 바라보면 자료형이 확실하지 않아서 무슨 값이 변수에 들어가 있을지 판단할 수 없게 됨을 의미한다.

초반에 공부할 때는 자료형에 신경쓰지 않는게 더 편하겠지만 더 깊게 공부하고 좋은 코드를 작성하려 할수록 확실하지 않은 변수를 사용하는게 불편해진다고 생각한다. 아직 공부해보진 않았지만 이게 TypeScript를 사용하는 이유가 아닐까 생각한다.

0개의 댓글