함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환된다. 또한 개발자가 명시적으로 값의 자료형을 변경할 수 있다.
이 과정을 형 변환이라고 한다.
ex) alert 함수 인자의 자료형에 상관없이 이를 문자열로 출력하는 것
수학 관련 연산자가 전달받은 값을 숫자로 변환하는 경우
(객체의 형 변환은 추후 챕터에서 다룬다.)
문자형의 값이 필요할 때 일어난다.
ex) boolean형 true -> 문자열 'true'
숫자형 123 -> 문자열 '123'
null -> 'null'
ex) let value = true;
alert(typeof value); // boolean
value = String(value); // 변수 value엔 문자열 "true"가 저장된다.
alert(typeof value); // string
수학과 관련된 함수와 표현식에서 일어난다.
alert('6' / '2'); // 3이 출력된다. 문자형 6과 2가 연산자에 의해 숫자형으로 변환되어 연산되고, alert 함수에 의해 다시 문자형으로 변환되어 출력된다.
명시적 변환은 값을 Number()에 넣어주면 된다.
(이 때 문자형이 하나라도 있으면 NaN이 된다.)
ex)let str = "123";
alert(typeof str); // string
let num = Number(str); // 문자열 "123"이 숫자 123으로 변환된다.
alert(typeof num); // number
null -> 0
true -> 1
false -> 0
undefined -> NaN
논리 연산을 수행할 때 발생한다.
(논리 연산에 관한 내용은 뒤 챕터에서 다룬다.)
명시적 변환도 수행 가능하다.
불린형으로 변환 시 규칙은 다음과 같다.
0, '', "", ``, null, undefined, NaN``` ===> false
위과 같이 직관적으로 빈 느낌의 값들은 false로 변환된다.
그 외의 값은 true로 변환된다. true로 변환되는 값 중 문자열 0과 문자열 공백이 있다.