JavaScript는 Java,C,C++ 등의 정적 타입 언어와 달리 동적 타입 언어이다.
그렇다면 정적 타입 언어와 동적 타입 언어의 차이는 무엇일까?
- 정적타입 언어는 컴파일 시에 변수의 타입이 결정되는 언어를 의미한다.
- 자료형이 컴파일 타임에 결정되기 위해서, 소스코드 작성 시 명시적으로 자료형을 지정해주어야 한다.
- 컴파일 시에 자료형에 맞지 않는 값이 들어있으면 컴파일 에러가 발생한다.
- 대표적인 언어로는 C, C++, Java, C# 등이 있다.
타입 에러로 인한 문제를 컴파일 타임에 해결할 수 있기 때문에 안정성이 높다.
규모가 큰 프로젝트 제작에서 선호된다.
컴파일 시에 미리 타입을 결정하기 때문에 실행속도가 빠르다.
String name ="yoon"
int num = 123
- 동적타입 언어는 런타임 시 자료형이 결정되는 언어를 의미한다.
- 자료형이 런타임에 결정되기 때문에, 소스코드 작성 시 자료형을 명시적으로 지정해줄 필요가 없다.
- 대표적인 언어로는 Python, JavaScript, Ruby 등이 있다.
var num = 1; //따로 타입 선언 없이 num이 ‘1’이란 숫자로 선언
num = “number 1”; //num을 string으로 새로 할당하면 타입 에러 없이 컴파일
Reference :
https://algorfati.tistory.com/112?category=939797