때때로, JavaScript의 type coercion은 유용할 때가 있다.
var myVar = "1.234"; // string+myVar; // 1.234typeof +myVar; // number+myVartoFixed2; // "1.23" string
하지만, String을 다룰 때는 주의가 필요하지.
String"1.234" instanceof String; // false 진짜?"1.234" instanceof String; // true 어디보자...String"1.234" == "1.234"; // true 설마?String"1.234" === "1.234"; // false 그렇군.return 2*3;toString === return 6;toString; // true in FF & Opera, false in IE & WebKit
이쯤 되면 다음과 같은 결과도 미리 예상해 볼 수 있다.
0 == "0"; // true 이젠 안 속아.0 === "0"; // false 그렇지.
세상 속 사실로 알려진 명제도 JavaScript의 요지경 속에 한 번 빠지면,
3 > 2 > 1; // false
이것은 아래와 같은 true의 변심에서 시작되었음을 알 수 있다.
true + 1 === 2; // truetrue + true === 2; // truetrue === 2; // falsetrue === 1; // false
어디 한 번 JavaScript의 요지경 속으로 빠져 봅시다! (⊙﹏⊙)