함수와 연산자에게 전달되는 값이 적절한 자료형으로 자동 변환되는 과정을 "형 변환(type conversion)" 이라고 합니다.
alert method는 매개변수로 문자형을 받기에, alert(value)에서 value는 문자형이어야 합니다.
let value = true;
alert (typeof value); // boolean
value = String(value); // 문자열 "true"가 저장
alert (typeof value); // String
String(value) 함수를 호출해 전달받은 값을 문자열로 변환 가능
alert ( "6" / "2" ); // 3, 문자열이 숫자열로 자동변환 후 연산 수행
Number(value)를 사용하면 주어진 값을을 숫자형으로 변환
let str = "123";
alert (typeof str); // String
let num = Number(str); //문자열 "123"이 123으로 변환
alert (typeof num); // number
let age = Number("문자열 123");
alert(age); // NaN, 변환 실패
숫자 이외의 글자가 들어가면, 그 결과는 NaN이 됩니다.
undefined -> NaN
null - > 0
true and false -> 1 과 0
String ->
alert ( Number( "123")); // 123
alert ( Number( "123a")); // NaN
alert ( Number( true )); // 1
alert ( Number ( false )); // 0
null은 0이 되고 undefined는 NaN이 되는 결과가 다르다.
숫자 0, Null, undefined, NaN, 빈 문자열 처럼 직관적으로 비어있다고 느껴지면 false 가 되고 그 외의 값은 true가 됩니다.
alert (Boolean(1)); // 숫자 1 true
alert (Boolean(0)); // 숫자 0 false
alert (Boolean("hello")); // 문자열 true
alert (Boolean("")); // 빈 문자열 false