早起きJavaScript

朝早く起きたので、昨日に引き続き1時間くらいオライリー本を熟読。
式、演算子を読んだあたりで今日は他の用事があったらしいので終了。
しかしJavaScriptはちゃんと型を意識して書かないと思わぬ落とし穴にはまりそうです。
たとえば、

"1" + "2" => "12"
1 + "2" => "12"
1 + 2 => 3
"1" * "2" => 2

だったかな?
アバウトに評価された値を演算子が「適切に型変換して」評価してくれるようですが、ちょっと気をつけないといけませんね。
それから、いわゆるグローバル変数がグローバルオブジェクト(トップレベルでthisを評価すると返るオブジェクト)のプロパティで、ローカル変数がグローバルオブジェクトにリンクしているCallオブジェクトのプロパティというのも、面白いですね。Schemeのレキシカルスコープのモデルをオブジェクトで表現している感じです。
さらに、

v=afunc(1);
o=new aconstructor(1);

の違い。上は単なる関数呼び出し。下は、aconstructor関数配下のローカル変数環境下にオブジェクトが生成されこれをthisとし、aconstructor関数を呼び出すということらしい。newがつくときとつかないときの関数呼び出しの主な違いはそういうことらしい。へぇ。
勉強になりますオライリー