티스토리 뷰

JavaScript

JS - String() 과 toString()

김관장 2022. 4. 13. 22:06

JS에는 문자열로 형 변환을 제공하는 기본 함수 String()과 .toString()이 있습니다.

 

주로 개발을 하면서 문자열로 형변환이 필요한 경우가 있는데, 보통 String()을 사용하여 변환하였습니다.

 

그렇다면 .toString()보다 String()을 자주 쓰는 이유와 .toString()은 언제 쓰는 것이 좋은지 정리하기 위해 글을 작성합니다~

 

1. String() 과 toString()

1-1. 차이점

String()과 toString()

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

 

  •  String() - 어떤 형태이든 문자로 형변환
  • .toString() - null(존재하지 않는 값, 비어있는 값, 알 수 없는 값), undefined(값이 할당되지 않은 상태) 형 변환 시 오류

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

1-2. toString() 사용하는 경우

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

* toString() 사용 시 주의할 점!

정수 리터럴을 함수에 직접 사용할 경우 오류가 발생할 수 있습니다. 이유는 JS에서 숫자 뒤의 .은 부동 소수점 숫자의 일부로 해석하기 때문입니다. 따라서 100.toString()의 경우 toString()을 숫자로 인식하기 때문에 오류가 나는 것이고, 이를 해결하기 위해서는
     1. 정수에 소수점은 하나만 존재하기 때문에 .0 을 붙여서 함수 사용 => 두번째 . 은 마침표 표기법으로 해석

     2. () 정수를 감싸 정수 그룹임을  표현하고 함수 사용

로 해결할 수 있습니다.

 

* String()과 toString()은 자주 사용하는 문자열 형 변환 함수이기 때문에 차이를 정확하게 학습하자. 특히 toString()을 사용하여 진수 변환을 하는 것은 알고리즘 코딩 문제에 나오기도 하니 알아두면 좋다!

'JavaScript' 카테고리의 다른 글

JS - 화살표 함수(Arrow function)  (0) 2022.04.22
JS - this 란?  (0) 2022.04.21
JS - Spread 문법  (0) 2022.04.08
JS - 배열 함수 sort()  (0) 2022.04.07
JS - JSX?  (0) 2022.03.31
댓글