
자바스크립트에서는 다양한 자료형을 다룰 수 있다. 그리고 이 자료형들은 서로 형 변환이 가능하다.
암시적 형 변환(Implicit coercion; Type conversion)은 자바스크립트에서 자동으로 수행되는 형 변환이며, 일반적으로 연산자를 사용할 때 발생한다.
let result1 = 1 + "2"; // 숫자 + 문자 => 문자(암시적으로 변환)
console.log(result1); // 12
console.log(typeof result1); // string
let result2 = "1" + true; // 문자 + 논리 => 문자
console.log(result2); // 1true
console.log(typeof result2); // string
// 결론: { }, null, undefined + "문자" => 문자열이 된다.
let result3 = 1 - "2";
console.log(result3); // -1
console.log(typeof result3); // number
let result4 = "2" * "3";
console.log(result4); // 6
console.log(typeof result4); // number
// (+)연산자가 아닌 (-. *. /)연산자를 사용하면 숫자가 우선시!
명시적 형 변환(Explicit coercion; Type casting)은 개발자가 직접 자료형을 변환하는 것을 만한다.
// console.log(Boolean(내용));
// 어떤 타입을 Boolean으로 형 변환할 것인가? 라는 뜻
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean("false")); // true
console.log(Boolean({})); // true
let result5 = String(123);
console.log(result5); // 123
console.log(typeof result5); // string
let result6 = String(true);
console.log(result6); // true
console.log(typeof result6); // string
let result7 = String(false);
console.log(result7); // false
console.log(typeof result7); // string
let result8 = String(null);
console.log(result8); // null
console.log(typeof result8); // string
let result9 = String(undefined);
console.log(result9); // undefined
console.log(typeof result9); // string
let result10 = Number("123"); // "123" 문자를 넣었지만
console.log(result10); // 123
console.log(typeof result10); // number