모든 프로그래밍 언어에는 타입 시스템이 있다

타입 시스템이란?

: 언어에서 사용할 수 있는 아주 여러가지 값들을 어떤 기준으로 묶어서 타입으로 정할지 결정하고 또 코드의 타입을 언제 검사할지 그리고 어떻게 검사할지 등의 우리가 프로그래밍 언어를 사용할 때 타입과 관련해서 지켜야 하는 규칙을 모아둔 체계

타입 시스템은 크게 두 가지로 나눌 수 있음

  1. 코드 실행전에 모든 변수의 타입을 고정적으로 결정 = 정적 타입 시스템(엄격함 + 고정적)
  2. 코드를 실행하기 전에는 타입을 결정하지 않고 코드를 실행하고 나서 그때 그때마다 유동적으로 변수의 타입을 결정 = 동적 타입 시스템(자유로움 + 유연함)

image.png

동적 타입 시스템

JS가 사용하는 동적 타입 시스템은 기본적으로 변수의 타입들을 코드가 실행되는 도중에 결정하기 때문에 우리가 미리 변수에 타입을 설정하지 않아도 된다는 유연함을 장점으로 가짐

let a = "hello";

→ 변수를 타입들을 코드가 실행되는 도중에 결정

밑 코드에서 a는 첫 번째 라인에서는 문자열 값을 담기 때문에 문자열 타입인 string이고, 두 번째 라인에서는 숫자 값을 담기 때문에 숫자 타입인 number 타입임

let a = "hello"; // 문자열
a = 20001008; // 숫자

장점: 변수 하나로 여기저기 다 활용할 수 있음