이번 포스팅에서는 프로그래머스 문제를 풀다 보면 발생하는 이슈 중 하나!
바로 문자열을 숫자 타입으로 바꾸는 것이다.
뭐 Number로 감싸면 되는거 아니야? 하겠지만...
문제를 풀다보면 Number 말고도 parseInt라는 메서드로도 바꿀 수 있더라.
그래서 이번 시간에 저 두 메서드의 차이점을 알아보고 싶어서 정리를 해 보려고 한다.
Number()는 값을 숫자로 변환할때 사용된다.
만약 변환할 수 없는 문자열 혹은 값이 들어오면 NaN (Not-a-Number)를 반환한다.
Number('123'); // 123
Numner('넘버에 대해 알아봅시다!!!'); // NaN
parseInt()는 문자열을 정수로 반환할때 사용된다.
문자열의 앞부분부터 숫자를 찾아서 변환하고, 숫자를 만날 때까지만 변환시켜준다.
parseInt('123'); // 123
parseInt('넘버에 대해 알아봅시다!!!'); // NaN
parseInt('456넘버에 대해 알아봅시다!!!'); // 456
parseInt('넘버에 대해 알아봅시다!!!456'); // NaN
parseInt는 신기하게도 문자열의 상태에서 숫자 + 문자 조합일때 숫자만 쇽 변환을 해서 반환해 준다.
만약 4번째 예시처럼 비록 문자열 안에 숫자가 있다고 해도 맨 앞자리가 숫자가 아니기 때문에 NaN을 반환해 버린다.
따라서 문자열에서 parseInt를 사용하고 싶다면 맨 앞자리가 숫자인지를 확인해야겠다!