원시값: number, string, boolean, null, undefined
참조값: array, function, object
숫자 == 문자열
문자열을 숫자로 변환 후 비교
boolean == 다른형
boolean을 number로 변환 후 비교
true = 1, false = 0
-, * / 연산자는 오직 수학적 연산
//자동 형변환 //더하기 - 무조건 연결자 var a = "23" + 1000; //string, 231000 var b = "food" + 1000; //string, food1000 //곱하기 var c = "23" * 1000; //number, 23000 var d = "food" * 1000; //number, NaN //빼기 var e = "23" - 1000; //number, -977 var f = "food" - 1000; //number, NaN //나누기 var g = "23" / 1000; //number, 0.023 var h = "food" / 1000; //number, NaN
📌참조값의 형변환
[] + 1 // '1' [] == 0 // 0참조값은 toString() 연산을 통해 자동으로 원시값으로 형변환된다.
ex)
if([] == 0){ console.log("출력된다"); }
- [] 에서 toString()으로 '' 로 변환
- '' == 0은 문자열과 숫자의 비교이므로 문자열을 숫자로 변환 후 계산
- 그래서 최종적으로 0 == 0 이되므로 true입니다.