on
Type Coercion (타입 변환)
Type Coercion (타입 변환)
해당 글은 모든 자바스크립트 개발자가 알아야 하는 33가지 개념에서 네 번째인 Implicit, Explicit 항목을 공부하면서 간단하게 작성한 글이다.
Type Coercion (타입 변환) 이란 한 데이터 타입에서 다른 데이터 타입으로 변환하는 것을 얘기한다. 타입 변환은 두 가지 방법으로 할 수 있다.
Implicit Coercion (암시적 변환)
암시적 변환이란 자바스크립트가 자동적으로 예상되는 타입으로 변환하는 것이다. 주로 서로 다른 타입의 데이터들을 연산 할 때 발생한다.
console.log(5 - '2'); // 3 console.log(5 - true); // 4 console.log(5 + '3'); // '53' -> '+' 연산자는 string 타입으로 변환 후 합친다.
산술 연산자 ('-', '*', '/', '%')를 할 때 피연산자가 number 타입이 아니고 다른 타입이면 자동으로 number 타입으로 변환시킨 후 계산을 한다. 여기서 Boolean 타입도 number 타입으로 변환이 되는데 true는 1, false는 0이다.
예외로 '+' 연산자는 다르게 동작한다. '+' 연산자는 두 가지 의도로 사용할 수 있는데, 하나는 두 개의 number를 더하거나 두 개의 string을 합치는 거다. 자바스크립트에서는 서로 다른 타입의 피연산자를 더할 때 두 개의 string을 합치는 것으로 간주한다.
if 문에서 Boolean 타입의 데이터를 사용하는데 false로 변환되는 값은 7가지가 있다.
false
0
-0
null
undefined
NaN
""
그 외의 값들은 모두 true로 변환된다.
if(undefined){ console.log("true"); } else { console.log("false"); } //false 출력
Explicit Coercion (명시적 변환)
명시적 변환이란 개발자가 의도를 가지고 데이터 타입을 변환하는 것이다.
Number('111'); // 111 String(200); // '200' Boolean(1111); // true Boolean(null); // false
from http://jjakddo-studio.tistory.com/23 by ccl(A) rewrite - 2021-12-19 10:27:38