[Javascript] String() vs toString()

박기영·2022년 11월 1일
0

Javascript

목록 보기
17/45

다른 타입의 입력값을 string 타입으로 변환할 때, 보통 두 가지 방법을 사용한다.
String()toString()이 대표적인 방법인데,
둘은 도대체 무슨 차이가 있을까?

String()

다양한 타입의 입력값을 string 타입으로 변환해보자.

let test = [1, undefined, null, true];

for (let item of test) {
  console.log(String(item));
}

결과를 살펴보자.

1
undefined
null
true

string 타입으로 변환된 것을 확인 할 수 있다!

toString()

let test = [1, true, undefined, null];

for (let item of test) {
  console.log(item.toString());
}

이번에는 어떨까?
결과를 살펴보자.

1
true
// 에러!!!
// 에러!!!

앗..! undefinednull은 변환이 되지않고 에러가 발생한다..!
이게 바로 String()toString()의 차이이다.

성능 차이

참고 이미지

참고 이미지

string 타입으로 변환하는 성능 차이를 살펴보았다.
toString() 메소드가 압도적인 성능을 보인다.
그러나...위에서 살펴봤듯 불안정한 부분이 존재하는 메소드이다.

String()과 toString()의 차이

String()undefined, null까지도 string 타입으로 변환해준다.
toString()undefined, null까지는 변환을 할 수 없다.

그런 이유로...

비록 일반적으로 toString() 함수를 많이 사용하고 있지만, toString()의 "안전한" 대안으로 String을 사용할 수 있습니다. String은 null과 undefined에 대해서도 잘 동작합니다.
- MDN docs -

MDN에서도 공식적으로 이런 말을 적어두었다.
string 타입으로 바꿀 일이 있다면 String() 메소드를 사용하는 것으로 해야겠다!

참고 자료

동동훈님 블로그
String() - MDN docs
MeasureThat.net 벤치마크

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글