『メンテナンスできるJavaScriptを書く』第四章のまとめを読みます.

4244 ワード

第四章変数関数と演算子
4.1①変数宣言
変数宣言はvar文によって行われ、すべてのvar文はこの論理を含む関数の先頭に先行して実行されます.
 function doSomething() { var result = 10 + value; var value = 10; return result; } //       
 function doSomething() { var result; //    undefined
        var value; //    undefined
        result = 10 +value; value = 10; return result; }
 
変数宣言の事前の意味:変数を関数の内部の任意の場所で定義することと、関数の上部で変数を定義することは全く同じです.したがって、流行のスタイルは、すべての変数宣言を関数の上部に置くことです.つまり、このスタイルに従って書かれたコード論理とJavaScriptエンジンによってこのコードを解析する習慣は同じです.
また、各変数の初期化は1行を独占しています.割り当て演算子は整列しなければなりません.
 //     
 function doSomethingWithItems(items) { var value = 10, result = value + 10, i, len; for (i=0, len=items.length; i < len; i++) { doSomething(items[i]); } }
 
4.2②関数宣言
関数を先に宣言してから使用します.関数宣言はステートメントブロック内に表示されてはいけません.
    //      
 doSomething(); function doSomething() { alert("Hello world"); } // JS     
 function doSomething (){ alert("Hello world"); } doSomething();
 
 //
    if (condition) { function doSomething() { alert("Hi!"); } } else { function doSomething() { alert("Yo!"); } }
 4.3③関数呼び出し間隔
関数呼び出しの書き方を推奨するスタイルは、関数名と左括弧の間にスペースがないので、ブロックステートメントと区別するためです.
 //     
 doSomething(item); //      :          
 doSomething (item); //          
    while (item) { //     
    }
 
 4.4④即座に呼び出す関数
すぐに呼び出す関数は、ペアの括弧で囲まれます.
 //     
  var value = (function () { //   
      
      return { message: "Hi" } }());  
 4.5⑤  厳格モード
「use strict」をグローバルスコープで使うことは推奨されていません.このようにすると、ファイル中のコードがすべて厳格なモードで解析され、他のファイル(厳密ではないモードでの)コードが間違っている可能性があります.
 //      
  "use strict" function doSomething () { //  
 } //     
 function doSomething () { "use strict"
      //   
  }  
4.6⑥  五分五分
JavaScriptは強制的なタイプ転換機構を持っているので、JavaScriptでの判断が同等であることは微妙である.いくつかの演算では、成功の結果を得るために、強制型変換は、ある種類の変数を他の異なるタイプに自動的に変換することができ、このような場合、予期せぬ結果をもたらすことが多い.So,次の文に注意してください.
すべての状況におすすめの使用==と!==
4.6.1⑦  エバー
一言について:本当にその方法がない時はevalを使います.
4.6.2⑧ オリジナル包装タイプ
JavaScriptには三つのオリジナル包装タイプがあります.String、Booleanl、Number.その主な役割は、元の値が対象となるような行動をすることです.
原始包装タイプの使用は禁止されています.
 //      
  var name = new String("Nicholas"); var author = new Boolean(true); var count = new Number(10);
理由:開発者の考えは常にオブジェクトと元の値の間でジャンプします.このようにバグの確率が増加し、開発者を困惑させます.あなたもこれらのオブジェクトを手動で作成する理由がありません.