타입 변환과 단축 평가 (2): 암시적 형변환의 기준

타입 변환과 단축 평가 (2): 암시적 형변환의 기준

* 10월 7일 스터디 발표 내용과 모던 자바스크립트 딥다이브를 참고하여 작성

지난 게시물에서 간략히 설명한 암시적 형변환은 작동되는 기준이 있다.

따라서 개발자의 입장에서는 이를 숙지한 뒤, 개발에 유리한 방향으로 유도할 수 있다.

1. 문자열 타입으로의 변환

//숫자 타입 0 + '' // "0" -1 + '' // "-1" NaN + '' // "NaN" //불리언 타입 true + '' //"true" false + '' //"false" //null과 undefined null + '' //"null" undefined + '' //"undefined" //객체 타입 ({}) + '' //"[object Object]" Math + '' //"[object Math]" [10, 20] + '' //"10, 20"

2. 숫자 타입으로의 변환

//문자열 타입 +'0' //0 +'string' //NaN (단항 연산자 +를 사용해도 문자열을 숫자로 바꿀 수 없는 형태라면 바꾸지 못함) //불리언 타입 +true //1 +false //0 //null과 undefined +null //0 +undefined //NaN //객체 타입 +{} //NaN +[] //0 +[10, 20] //NaN

-, *, / 와 같은 산술 연산자들은 모두 위의 예시와 같이 타입 변환을 일으킨다.

다만, 단항 연산자가 아닌 이항 연산자로서의 +는 여기에 해당되지 않으므로 주의해야 한다.

(지난 게시글에서 다루었던 예시를 생각해보면 이해에 도움이 될 것이다)

3. 불리언 타입으로의 변환

자바 스크립트 엔진은 불리언 타입이 아닌 데이터를 truthy 값(참으로 평가되는 값)과 falsy 값(거짓으로 평가되는 값)으로 구분하여 인식한다.

몇 가지 케이스를 제외하고는 모두 truthy값으로 인식하므로, 그 몇가지에 해당되는 falsy 값들을 숙지하는 것이 중요하다.

false undefined null 0, -0 NaN '' (빈 문자열)

from http://oaat9309.tistory.com/13 by ccl(A) rewrite - 2021-10-08 21:28:07