암묵적 타입 변환(implicit coercion)

건둔덕 ·2022년 6월 22일
1

Javascript

목록 보기
10/28
post-thumbnail

자바스크립트 엔진은 표현식을 평가할 때 개발자의 의도와는 상관없이 코드의 문맥을 고려해 암묵적으로 데이터 타입을 강제로 변환할 때가 있다.

<script>
// 피연산자가 모두 문자열 타입이여야하는 문맥
'10' + 5 // '105'

// 피연산자가 모두 숫자 타입이어야 하는 문맥
5 * '10' // 50

// 피연산자 또는 표현식이 불리언 타입이어야 하는 문맥
!0 // true
</script>

위의 예시처럼 표현식을 평가할 때 코드의 문맥에 부합하지 않는 다양한 상황이 발생할 수 있다. 이때 프로그래밍 언어에 따라 에러를 발생시킬 수 있지만 자바스크립트는 가급적 에러를 발생시키지 않도록 암묵적 타입 변환을 통해 표현식을 평가한다.

암묵적 타입 변환이 발생하면 문자열, 숫자, 불리언 같은 원시 타입 중 하나로 타입을 자동 변환한다.

profile
건데브

0개의 댓글