함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환되는데 이런 과정을 "형 변환"이라고 한다.
전달받은 값을 의도적으로 변환(명시적 변환)하는 경우도 형 변환이라고 할 수 있다.
문자형으로 형 변환은 문자형의 값이 필요할때 일어난다.
String(value)
함수를 호출해 문자열로 변환할 수도 있다.
let value = true;
alert(typeof value); // boolean
value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string
숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어난다.
alert( "6" / "2" );
// 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.
Number(value)
함수를 사용해 숫자형으로 명시해서 변환할 수 있다.
let str = "123";
alert(typeof str); // string
let num = Number(str); // 문자열 "123"이 숫자 123으로 변환됩니다.
alert(typeof num); // number
숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 결과는 NaN
이 된다.
논리 연산을 수행할 때, Boolean(value)
를 호출하여 명시적으로 불린으로 형 변환을 할때 발생한다.
숫자 0
, 빈 문자열 null
, undefined
, NaN
과 같이 직관적으로 "비어있다고" 느껴지는 값들은 false
가 된다.
문자열 "0"은 true로 취급한다.