const num = 10
const str = num.toString() // Number(10) 를 String("10") 으로 명시적 변환
const num = 10
const str = 10 + '' // Number(10) 를 String("10") 으로 암묵적 변환
String(1) // "1"
(1).toString() / "1"
Number('0') // 0
parseInt(0) // 0
Boolean(0) // false
Boolean('str') // true
10 + '' // "10"
0 + '' // "0"
1 + '' // "1"
-1 + '' // "-1"
true + ''// "true"
false + '' // "false"
NaN + '' // "NaN"
[] + '' // ""
[1, 2] + '' // "1,2"
({}) + "" // "[object Object]"
10 - "3" // 7
5 * "10" // 50
"10" * 5 // 50
"10" / 5 // 2
"ten" * 5 // NaN
+true // 1
+false // 0
+null // 0
+undefined // NaN
+'' // 0
+[] // 0
+[1, 2] // NaN
+{} // NaN
!!1 // true
!!0 // false
!![] // false
!![1,2]
!!'' // false
!!'1' // true
!!'0' // true
!!'text' // true
!!{} // true
!!NaN // false
!!null // false
!!undefined // false
({}) + '' // "[object Object]"
{} + '' // 0
({}) + ''({}) 는 object로 인식한다.+ ''가 있기 때문에 ({})를 string으로 변환한다.'[object Object]' + '' 와 동일한 의미이다.{} + ''{}는 빈 코드블록으로 인식한다.{}를 지나치고 + ''를 실행한다.+''는 숫자형으로 형변환이된다.아래의 예시를 생각해보면 익숙한 내용이었다. 😂
const getObj = (v) => ({value: v})
https://geonlee.tistory.com/168
이 글에 아주 잘 나와있다!!