암묵적 타입 변환이 발생하면 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 타입을 자동 변환한다.
문자열 타입으로 변환
1 + '2' = "12"
// 템플릿 리터럴 표현식
`1 + 1 = ${1 + 1}` // "1 + 1 = 2"
숫자열 타입으로 변환
1 - '1' // 0
1 * '10' // 10
1 / 'one' // NaN
'1' > 0 // true
불리언 타입으로 변환
자바스크립트 엔진은 불리언 타입이 아닌 값을 Truthy(참으로 평가 되는 값) 또는 Falsy(거짓으로 평가되는 값)으로 구분한다.
즉 제어문의 조건식과 같이 불리언 값으로 평가되어야 할 문맥에서
Truthy값은 true로, Falsy값은 false로 암묵적 타입 변환된다.
false로 평가되는 Falsy값
= false
= undefined
= null
= 0. -0
= NaN
= ''(빈 문자열)