2011年5月23日月曜日

JavaScript The Good Parts 1、2章


このエントリーをはてなブックマークに追加


1章


とくにないけど、以下の定義はたびたび利用されるので、覚えておく。



Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};


いちいちprototypeって書かなくていいのと、thisを変えすことでメソッドを続けて呼べる(カスケード)がメリット


2章 文法



  • 名前

    • undefined,NaN,Infinityは予約語ではない。



  • 数値

    • jsは数値型が1つ。1と1.0は同じ。

    • NaNは数値を生成できない計算をした場合に得られる。NaNはどんな値ともイコールにならない。NaNとも。isNaN関数を使用すること。

    • 数値はメソッドをもつ



  • 文字列

    • 16bit長

    • プロパティとメソッドをもつ



  • 命令文

    • スコープはグローバルor関数スコープ

    • varを付けると関数内のプライベート変数

    • if文などはブロックを形成しないので、変数の宣言は、関数内の先頭で行う。(関数スコープは存在する)

    • 偽と評価されるもの。以下以外は真。

      • false

      • null

      • undefined

      • 空文字列''

      • 0

      • NaN



    • switchのcaseは式でもいい。case x+y:

    • for in はプロパティ名かキー名を列挙するが、プロトタイプチェーン上のものと区別するために以下のようにする。





for (myvar in obj) {
if (obj.hasOwnProperty(myvar)) {

}
}




    • try{}catch(e){}finally{}

      • try内で例外が投げられると、catchが引数に例外オブジェクトを受け取り、処理。finallyは例外に関わらず必ず実行される。



    • throw:例外を発生させる

      • 例外がtry外で起こった場合、実行を中断して、呼び出し元でtryがあれば処理を移動する。

      • 通常throwにはname,messageプロパティを含ませる。



    • returnと式の間に改行はダメ、breakとラベルの間に改行はダメ。





    • typeofはnumber,string,boolen,undefined,function,objectを返す。

      • null,配列はobjectを返す点に注意。





  • リテラル

    • オブジェクトのプロパティ名はリテラルとして扱われるので、コンパイル時に正体がわからない変数は使用できない。







0 件のコメント:

コメントを投稿