[JS] String() 과 .toString() 차이점

KJA·2022년 7월 23일
0

String() 과 .toString()

차이점

String()은 null, undefined에 대해서도 잘 동작하는 반면, .toString()은 에러가 발생하는 것을 확인할 수 있습니다.

  • String() : 어떤 형태이든 문자로 형변환
  • .toString() : null, undefined 형 변환 시 오류

확실히 값이 명시된 경우에는 둘 다 상관없지만,
null, undefined 와 같이 예외인 경우가 있을 수 있으므로 String()을 사용하는 것이 좋습니다.

.toString()

  • number.toString(radix) - 2~36 진수의 수로 변경하고 싶은 경우 사용
    • radix의 범위는 2~36이며, 값 생략 시 10진수로 반환합니다. (범위보다 작거나 넘어가면 오류 발생)

참고) 변환한 진수를 다시 숫자로 변경하는 방법은 parseInt(string, radix) 입니다.

사용 시 주의할 점!


정수 리터럴을 함수에 직접 사용할 경우 오류가 발생할 수 있습니다. JS에서 숫자 뒤의 .은 부동소수점 숫자의 일부로 해석하기 때문입니다.

따라서 100.toString()의 경우 .toString()을 숫자로 인식하기 때문에 오류가 나는 것이고, 이를 해결하기 위해서는

  1. .0을 붙여서 함수 사용
    • 정수에 소수점은 하나만 존재하기 때문
    • 100.0.toString()의 두 번째 .은 마침표 표기법으로 해석
  2. () 정수를 감싸 정수 그룹임을 표현하고 함수 사용

.toString()을 사용하여 진수 변환을 하는 것은 알고리즘 코딩 문제에 나오기도 하니 알아두면 좋다.

0개의 댓글