자바스크립트의 문제점
자바스크립트의 문제점
타입스크립를 제대로 공부하기 전에 타입스크립틑 왜 사용하며, 어떤점 때문에 자바스크립트에서 타입스크립트로 넘어가는지 알아보자.
타입스크립트란?
타입스크립트는 자바스크립트에 타입을 추가해주는 문법이다. 되게 심플하다. 타입만 추가함으로써 얻을 수 있는 장점은 다음과 같다.
- 타입이 존재하기에 안전성 향상
- 런타임에러의 감소
- 생산성의 증가
자바스크립트의 문제점
현재의 자바스크립트 유연하다고 볼 수 있지만, 유연한게 독이 되는 경우 도 있다.
자바스크립트의 문제
1
[1, 2, 3, 4] + false; // 1,2,3,4false
다음의 결과는 어떻게 나올까?
자바스크립트의 결과에서는 1,2,3,4false
가 결과로 나온다. 타 언어에서는 말도 안되는 결과가 도출되는 현상이 일어난다.
자바스크립트의 문제
1
2
3
4
5
6
7
function divide(a, b) {
return a / b;
}
console.log(divide(2, 3)); // 0.66666666666
console.log(divide("aaaa")); // NaN
나눗셈이라는 함수를 만들어 매개변수 2, 3을 보냈을경우 의도한 대로 0.6666666 이라는 값이 나오지만 매개변수에 “aaaaaa” 라는 문자열을 보냈을 경우 NaN 이라는 결과가 온다.
NaN 은 숫자가 아니라는 것이지 절대 에러의 영역이 아니다. 또한 함수에는 매개변수의 갯수가 2개를 보냈어야되지만 문자열 하나만 보내도 결과 가나오기에 이 또한 에러가 나와야되지만 정상적으로 NaN라는 값만 결과로 보내준다.
자바스크립트의 문제
1
2
3
const person = { name: "park" };
console.log(person.hello());
객체를 만들어서 객체에 존재하지 않는 함수를 실행시켰다. 결과는 에러로 나오지만, 생각을 해보면 이는 결과를 출력하지 않으면 문제가 되는지 안되는지 모르게되는 상황이 발생된것이다. 즉 person.hello() 를 입력하는 순간 타 언어에서는 hello라는 함수가 없음을 알려주지만 자바스크립트는 이를 실행해야만 알 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.