
parseInt, Number 두 가지는 간단하게 말하면 문자열을 숫자로 변환한다.
하지만 약간 다른 방식으로 동작한다.
parseInt는 문자열을 왼쪽에서 오른쪽으로 읽으면서 처음으로 숫자가 아닌 문자를 만나면 그 위치에서 파싱을 중단하고, 그때까지 파싱한 숫자를 반환한다.
만약 문자열이 숫자로 시작하지 않는다면 parseInt는 NaN을 반환한다.
parseInt('123abc'); // 123
parseInt('abc123'); // NaN
반면에 Number는 문자열 전체가 유효한 숫자 형식이어야 한다. 그렇지 않으면 NaN을 반환한다.
Number('123abc'); // NaN
Number('123'); // 123
parseInt는 인수가 항상 유효한 숫자 형식의 문자열을 반환한다는 보장이 없을 때 사용하면 좋다.
예를 들면 substring으로 어떤 복합 데이터를 추출할 때 parseInt를 사용하면 좀 더 안전하게 추출할 수 있다.
parseInt는 추가적인 처리(문자열을 왼쪽에서 오른쪽으로 읽으면서 숫자가 아닌 문자를 찾는 등)를 수행하기 때문이다.
물론 그 차이는 크지 않다.
parseInt는 이외에도 정수 반환, 진법 변환 등 활용할 수 있는 것들이 많다. 엄청 쓸만하다.
Number도 소수점까지 숫자 변환 등 활용도가 있다.
각각 겹치지 않는 부분이 있으니 상황에 따라 사용하자. 교집합 부분의 경우 차이는 알고 쓰자.