2017-04-15 (土)
v8の実装とECMAScriptの仕様見てたときに気づいたのだけど,オブジェクトからプリミティブな値を取得する時に呼ばれるvalueOfやtoString,演算子によって優先される関数が違うのか.具体的には,加算はtoStringが優先されて他の演算子はvalueofが優先される.
new Date() + 0
は文字列に変換された日付に"0"をつなげた文字列が返るのに,new Date() - 0
は現在時刻をミリ秒で表した数値が返るのはそういう理由か...JavaScript難しい.
そんなことよりも,3Dプリンタ買った→メタセコイアでモデリングしよう→色々マクロ書いておこう→Pythonマクロ書きにくい→いっそV8組み込んでjsで書こう→V8のコード読むのが意外と面白い,という感じなの何かが駄目な感じがする.