const mathScore = prompt("수학 몇점?");
const engScore = prompt("영어 몇점?");
const result = (mathScore + engScore) / 2;
console.log(result);
결과는??????
원하는 값이 아닌 이상한 값이 나온다 .
이유는????????
prompt 로 받으면 모두 string 형으로 받게 된다.
100과 20 을 입력 해봤다고 하자.
number형이 아니고 string 으로 받았으니까
"100" + "20" 이 되서 "10020" 이 된다.
이를 2로 나눠버리니까 5010이 나온다. 2로 나누면서 number형으로 까지! (자동 형변환)
이는 원인을 찾기 힘든 버그로 발전할 수 있다.
String() 문자형으로 변환
Number() 숫자형으로 변환. 만약 문자열이 섞여 있다면 NaN 이 된다.
Boolean() 불린형으로 변환
주의!
Number(null) // 0
Number(undefined) // NaN
Number(0) // false
Number('0') // true
Number('') // false
Number(' ') // true
false
숫자 0
빈 문자열 ''
null
undefined
NaN