JavaScript-day 1を拾い直す

3702 ワード

JavaScriptベースノート-day 1
数値
JavaScriptは1つの数値タイプしかなく、内部では64ビットの浮動小数点数として表され、JavaScriptは証明書タイプを分離していないので、1と1.0の値は同じです.
文字列
文字の字面の量は1つの1つの引用符あるいは2つの引用符の中で包むことができて、JavaScriptは文字のタイプがなくて、1つの文字を表すには、1つの文字を含む文字列しか作成できません.Javaと同様に文字列は可変ではありません.1つの文字列が起きれば、永遠に変更できませんが、同じように、+要素で他の文字を接続することで、新しい文字創を作成することができます.
 'c'+'a'+'t' === 'cat';

コードブロック
コードブロックは括弧に含まれる文のペアであり、JavaScriptのコードブロックは新しい役割ドメインを作成しないため、コードブロックに作成される変数はグローバル変数に等しいため、変数はコードブロックではなく関数のヘッダに定義されるべきである
式#シキ#
最も簡単な式は、文字列や数字などの字面量、変数、内蔵値(true、false、null、undefined、Nan、Infnity)、newで始まる呼び出し式、deleteで始まる属性抽出式、カッコで囲まれた式、前置演算子を先頭とする式、または式の後に続く式です.
  • の1つの中置演算子と別の式
  • 三元演算子
  • 関数呼び出し
  • 属性抽出式
  • 字面量(字面量は変数と混同しないでください)
    -オブジェクトの字面量指定された仕様に従って新しいオブジェクトを作成するのに便利な表現-配列の字面量...-関数の数値面量...
    オブジェクト
    JavaScriptオブジェクトはタイプなし、オブジェクトはプロパティのコンテナです.数値、文字列、ブール値、null、undefinedはデータ型であり、他のすべての値はオブジェクトです.メソッドがあるため、数値、文字の創始値、およびブール値は「オブジェクトのように見える」が、1対のカッコに囲まれたゼロまたは複数の「名前/値」のペアを可変オブジェクトの字面量にする.これは、新しいオブジェクト値を簡単に作成できる表現です.
     var empty_object = {};
     var stooge = {
     "first-name":"Jerome"
     "last-name":"Howard";
     };
     ##  

    参照
    オブジェクトは参照によって渡され、値ではなくオブジェクトのアドレスが渡され、コピーされません.  
    プロトタイプ
    これはJavaScriptの最も重要な部分であり、関係を継承するのではなく、プロトタイプチェーンの形式でメソッドと属性を継承します.プロトタイプ接続は、値を取得するときにのみ使用されます.オブジェクトの属性値を取得しようとしますが、オブジェクトに属性値がない場合、JavaScriptは上を検索し、プロトタイプオブジェクトから属性値を取得します.この手順を繰り返しなければ、このプロセスの終点はObject.prototypeです.所望のプロパティがプロトタイプチェーンに全く存在しない場合、結果はundefined値になります.この過程を依頼と呼ぶ.プロトタイプ関係は動的関係である.新しいプロパティをプロトタイプに追加すると、そのプロパティはすぐにプロトタイプに基づいて作成されたすべてのオブジェクトに表示されます.a question:オブジェクトがプロトタイプAに基づいて作成され、その後Aの属性値が変更された場合、前に作成されたオブジェクトも変更されますか?  
    はんしゃ
    ここでいう反射はJavaでの反射ではなく、javaScript自体が動的言語であり、オブジェクトをチェックしてオブジェクトにどのような属性があるかを特定するのは容易なことであり、その属性を検索して取得した値を検証しようとする限り
     typeof flight.number //'number'

    プロトタイプチェーン内の任意のプロパティに値が生成されます.オブジェクト固有のプロパティを取得したい場合は
    //hasOwnProperty        
        flight.hasOwnProperty('number')//true

    forin
    forin文は、オブジェクト内のすべての属性名を遍歴するために使用できます.forin列挙遍歴の場合、返される順序は一定ではありません.たとえば、配列を遍歴すると、その遍歴プロセスの順序は不確定です.
    delete
    delete演算子は、オブジェクトのプロパティを削除するために使用できます.オブジェクトにこのアトリビュートが含まれている場合、そのアトリビュートは削除され、プロトタイプチェーン内のオブジェクトはトリガーされません.オブジェクトの属性を削除すると、プロトタイプチェーンからの属性が透けて見える可能性があります(オブジェクトには属性Aがあり、プロトタイプチェーンにも属性Aがあります.オブジェクトの属性を削除すると、自然に属性Aを取得すると、オブジェクト自体にはその属性は存在しませんが、プロトタイプチェーンに基づいてプロトタイプチェーン上の属性Aが上に検索されます).
    グローバル汚染を減らす
    JavaScriptは、アプリケーションのすべてのリソースを収容するためにグローバル変数を任意に定義できます.しかし,グローバル変数を勝手に作成することはプログラムの柔軟性を弱め,使用を避けるべきである.グローバル変数を最小化する方法の1つは、アプリケーションに一意のグローバル変数を作成することです.
        var MYAPP = {};

    この変数はあなたのアプリケーションのコンテナになります
     MYAPP.stooge = {
       "first-name":"Joe";
       "last-name":"Howard"
     };

    グローバルなリソースを名前の直線に組み込むと、プログラムが他のプログラム、コンポーネント、クラスライブラリと衝突する可能性が著しく低下し、プログラムも読みやすくなります.