알고리즘 문제를 풀다보면 number 타입으로 들어온 데이터를 자릿수별로 쪼개서 사용해야하는 경우가 종종 있다.
이 때.String()혹은toString()을 많이 사용하는데
필자는String()을 주로 사용하다가 다른 분들 풀이를 보며toString()을 사용해보았다.
이 때 겪은 문제에 대해서 정리하고자 한다.
97.toString() // 에러
이 코드는 에러가 발생한다.
String(97)를 사용하면 문제가 없지만, 97.toString()은 에러를 일으킨다.
즉, 정수 리터럴을 함수에 직접 사용할 경우 오류가 발생한다.
이유는 바로 JS에서 숫자 뒤의 .은 부동 소수점 숫자의 일부로 해석하기 때문이다.
100.toString()
에서 toString() 부분을 숫자로 해석하기 때문에 이런 문제가 발생한다는 것이다.
// 방법 1
let num = 97;
num.toString(); // "97"
// 방법 2
(97).toString(); // "97"
// 방법 3
97.0.toString(); // "97"
방법 1
toString()을 사용한다.방법 2
()로 감싼 것에 toString()을 사용한다.방법 3
.0을 붙인 뒤, toString()을 사용한다..0 을 붙여서 사용하면, 두번째 .은 마침표 표기법으로 해석하기 때문이다.