この記事の内容はすべてECMAScript5に基づいているのでIE8などでは違う結果になります 以前書いた記事で{toString : valueOf}という記述の意味について考えたのですが、コメントで間違いを指摘して頂いたので改めて書きたいと思います。 今回は簡単のために以下のコードで見ていきます。 var a = { valueOf:function(){ return false; }, toString:valueOf }; document.write(Number(a)); document.write("<br>"); document.write(String(a)); aという変数にvalueOfとtoStringの2つのメソッドを持つオブジェクトをリテラルで設定し、そのaをそれぞれ文字列、数値として評価した場合に表示される内容を確認するコードです。 これを実行すると 0
![オブジェクトのデフォルト値(valueOfとtoStringの関係)について - プログラミングを勉強するブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/5f66bd6396b8b6764234f842ef9d7c1a1caa1276/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fa%2Fartgear%2F20120809%2F20120809183713.jpg)