언어는 정적언어와 동적언어 두 타입으로 나누어진다!
정적언어는 컴파일 시간에 변수의 타입이 결정되는 언어이고 대표적인 예시로 C, C++, Java 등이 있다.
동적언어는 런타임에 타입이 결정되는 언어로, 프로그램이 빌드될 때 타입을 결정하는 것이 아닌 실행될 때 상황에 맞게 타입이 결정된다.
자바스크립트가 동적언어인 이유는 느슨한 타입의 데이터 구조를 사용하기 때문이다. 다른 언어와 달리 타입 지정 없이 var, let, const 키워드로만 변수를 선언해주기 때문이다. 코드 상 따로 타입 지정이 없기 때문에 실제로 코드가 사용되어지는 런타임 때 상황에 맞게 결정된다. 따라서 아래와 같이 number타입을 할당했어도 string으로 update가 가능하다!!
let example = 1;
console.log(example); // 1
example = "change";
console.log(example); // change
정적타입은 유연하게 코드를 작성할 수 있고 코드 시간을 단축시킬 수 있지만 타입 문제에서 많은 혼란을 가져올 수 있다.
이러한 한계점으로 자바스크립트에 정적타입을 적용한 타입스크립트가 나온 것이다!!
https://javascript.plainenglish.io/2-reasons-why-javascript-is-a-dynamic-language-f896d6fbe405
https://yesfordev.com/why-javascript-is-considered-as-a-dynamic-language/
'Javascript' 카테고리의 다른 글
if(a) 과 if(a !== null)이 동일하게 작동하지 않는 이유 (0) | 2023.07.27 |
---|---|
onAnimationEnd란 (0) | 2023.07.17 |
[Javascript] 이벤트루프와 자바스크립트의 비동기 처리 과정 (1) | 2023.03.15 |
[Javascript]ES6 (0) | 2022.10.10 |
[Javascript]Axios란? (0) | 2022.10.09 |