개발 지식, 스크립트/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 = "문자열"; // 컴파일 에러 발생
* 동적 타입 언어의 장점은 코드 작성에 유연하지만 신뢰성이 떨어진다.
* 정적 타입 언어의 장점은 코드 작성에 제약이 많지만 신뢰성이 높다.