개발 지식, 스크립트/JavaScript, TS

JS 동적 타입 vs 정적 타입

개발하는지호 2023. 11. 26. 23:33

JavaScript는 값이 할당되는 과정에서 타입이 결정되기 때문에 동적 타입(Dynamic, Weak) 언어라고 하며,

이를 타입이 추론 된다고 표현하기도 한다.

 

let a; // a의 타입은 아직 정의되지 않았다는 의미의 undefined

a = 5; // a의 타입은 Number 타입으로 결정됨

또한 이후 추가적인 코드가 실행되면서 언제든지 다른 타입으로 변경될 수도 있음

let a = 5; // Number type
// ... 다른 코드 수행
a = '문자열'; // String type

반대로 C, Java 언어 등의 경우에는 선언 시점에 타입이 결정되기 때문에 정적 타입(Static, Strong) 언어라고 함

int a = 5; // 변수 a의 타입은 int

a = "문자열"; // 컴파일 에러 발생

 

 

* 동적 타입 언어의 장점은 코드 작성에 유연하지만 신뢰성이 떨어진다.

* 정적 타입 언어의 장점은 코드 작성에 제약이 많지만 신뢰성이 높다.