자바스크립트에서 자료형 타입들은 서로 형 변환이 가능
자바스크립트에서 자동으로 수행되는 형 변환
일반적으로 연산자 사용할 때 발생
문자열과 다른 자료형을 + 연산자로 결합 시, JS는 다른 자료형을 문자열로 변환 우선시한다.
console.log(1 + "2"); // "12"
console.log("1" + true); // "1true"
console.log("1" + {}); // "1[object Object]"
console.log("1" + null); // "1null"
console.log("1" + undefined); // "1undefined"
+ 연산자 제외한 다른 연산자로 결합 시 숫자로 변환 우선시한다.
console.log(1 - "2"); // -1
console.log("2" * "3"); // 6
//- 빈 문자열("")이나 공백 문자열(" ")은 0으로 변환
console.log(4 + +"5"); // 9
개발자가 직접 자료형을 변환하는 것
String() 함수를 사용하여 다른 자료형을 문자열로 변환
console.log(String(123)); // "123"
console.log(String(true)); // "true"
console.log(String(false)); // "false"
console.log(String(null)); // "null"
console.log(String(undefined)); // "undefined"
console.log(String({})); // "[object Object]"
Number() 함수를 사용하여 다른 자료형을 숫자로 변환
console.log(Number("123")); // 123
console.log(Number("")); // 0
console.log(Number(" ")); // 0
console.log(Number(true)); // 1
console.log(Number(false)); // 0
Boolean() 함수를 사용하면 불리언 값으로 변환 가능
//- 0, 빈 문자열(""), null, undefined, NaN은 false로 변환
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
//- 그 외 값은 true로 변환
console.log(Boolean("false")); // true
console.log(Boolean({})); // true