質問: javascriptのNumber関数にDate()を渡すと現在の時刻表(タイムスタンプ?)が返ってきて、それ以外だと非数(NaN)が返ってきますが、 Date以外のオブジェクトでNumber関数に渡し非数以外が返ってくるオブジェクトは存在しますか?
回答: // スカラー型のラップクラス系に多いです ``` var numberObject = new Number(100); // 数値100をラップしたNumberオブジェクト var stringObject = new String(100); // 文字列"100"をラップしたStringオブジェクト var booleanObject = new Boolean(100); // 真偽値 true をラップしたBooleanオブジェクト Number(numberObject); // 100 Number(stringObject); // 100 Number(booleanObject); // 1 (true は 100 には戻らない) ``` からくりは、メソッド `valueOf()` を持っていればいいので、自前のオブジェクトでも可能です。 ``` var hasValueOf = {valueOf: function(){return 123}}; Number(hasValueOf); // 123 ```