implicit coercion / 타입 강제 변환 type coercion
JS 엔진은 표현식을 평가할 때 개발자의 의도와는 상관없이 코드의 문맥을 고려해 암묵적으로 데이터 타입을 강제 변환할 때가 있다.
표현식을 평가할 때 코드의 문맥에 부합하지 않는 경우,
프로그래밍 언어에 따라 에러를 발생시키기도 하지만
JS는 가급적 에러를 발생시키지 않도록 암묵적 타입 변환을 통해 표현식을 평가한다.
피연산자가 모두 문자열 타입이어야 하는 문맥
'10' + 2 // '102'
+ 연산자
의 피연산자 중 하나 이상이 문자열인 경우, 문자열 연결 연산자
로 동작한다.
> 비교 연산자
는 피연산자의 크기를 비교하므로 모든 피연산자가 숫자 타입으로 변환된다.객체
와 빈 배열이 아닌 배열
, undefined
는 변환되지 않아 NaN
이 된다.
false
undefined
null
0
,-0
NaN
''
{}
와 빈 배열[]
도 Truthy🌟explicit coercion / 타입 캐스팅 type casting
명시적으로 타입을 변경하는 방법들을 알아보자!