다른 타입의 입력값을
string타입으로 변환할 때, 보통 두 가지 방법을 사용한다.
String()과toString()이 대표적인 방법인데,
둘은 도대체 무슨 차이가 있을까?
다양한 타입의 입력값을 string 타입으로 변환해보자.
let test = [1, undefined, null, true];
for (let item of test) {
  console.log(String(item));
}결과를 살펴보자.
1
undefined
null
truestring 타입으로 변환된 것을 확인 할 수 있다!
let test = [1, true, undefined, null];
for (let item of test) {
  console.log(item.toString());
}이번에는 어떨까?
결과를 살펴보자.
1
true
// 에러!!!
// 에러!!!앗..! undefined와 null은 변환이 되지않고 에러가 발생한다..!
이게 바로 String()과 toString()의 차이이다.


string 타입으로 변환하는 성능 차이를 살펴보았다.
toString() 메소드가 압도적인 성능을 보인다.
그러나...위에서 살펴봤듯 불안정한 부분이 존재하는 메소드이다.
String()은 undefined, null까지도 string 타입으로 변환해준다.
toString()은 undefined, null까지는 변환을 할 수 없다.
그런 이유로...
비록 일반적으로 toString() 함수를 많이 사용하고 있지만, toString()의 "안전한" 대안으로 String을 사용할 수 있습니다. String은 null과 undefined에 대해서도 잘 동작합니다.
- MDN docs -
MDN에서도 공식적으로 이런 말을 적어두었다.
string 타입으로 바꿀 일이 있다면 String() 메소드를 사용하는 것으로 해야겠다!