두 코드 모두 input과 num을 문자열로 변환한 후 이를 합쳐 새로운 문자열을 만든 다음, 숫자로 변환하는 작업을 해주는건데, 단지 작성 방식에만 차이가 있는 건가? 라는 의문이 생겨 메모해둡니다.
1. const newInput = ${String(input) + String(num)};
: String()은 명시적으로 값을 문자열로 변환하는 함수
2. const newInput = ${input.toString() + num.toString()};
: .toString() 메서드는 객체나 원시 값을 문자열로 변환하는 JavaScript 기본 함수
차이점
String() 함수는 다양한 값(예: null, undefined, 배열 등)을 문자열로 변환하는 데 사용할 수 있다. undefined나 null을 변환하면 "undefined", "null"이라는 문자열을 반환.
.toString()은 원시 값 또는 객체의 문자열 표현을 반환하지만, null 또는 undefined 값에서 호출하면 오류가 발생. 따라서 input이나 num이 null 또는 undefined일 가능성이 있는 경우 String()이 더 안전하다.
결론
두 코드 모두 input과 num이 정상적인 숫자라면 동작은 동일하지만, 첫 번째 코드(String())는 더 안전하게 다양한 타입을 처리할 수 있을 것이 다.