【JavaScript対象に向けた要約】読書ノート(1)-オリジナルタイプと引用タイプ

5668 ワード

元のタイプは単純なデータ値で、参照タイプは対象として保存されます.その本質はメモリの位置を指す参照です._; 他のプログラミング言語をスタックに格納し、元のタイプをスタックに保存し、参照の種類を記憶する.JavaScriptは、変数の生存期間を追跡する変数オブジェクトを使用しています.元の値は変数オブジェクト内に直接保存され、参照値は変数オブジェクト内にポインタとして保存され、実際のオブジェクトのメモリ内の記憶場所を指します.
元のタイプ
そのまま保存した簡単なデータです.5種類のオリジナルタイプがあります.
元のタイプ
説明
bollan
ブール値は、tureまたはfalseの値です.
number
数字、値は整数または浮動小数点型です.
ストリングス
文字列、値はシングルクォーテーションマークまたはダブルクォーテーションマークで拡張された単一または複数の連続文字(文字の種類を区別しない)です.
null
空のタイプ
undefined
未定義
JavaScriptでは、元のタイプの変数は直接元の値を保存します.元の値を変数に割り当てると、その値は変数にコピーされます.つまり、一つの変数が他の変数に等しい場合、各変数は自分のデータをコピーします.
var color1 = 'red';   
var color2 = color1;
console.log(color1);//'red'   
console.log(color2);//'red'
      
color1 = 'blue';   
console.log(color1);//'blue'   
console.log(color2);//'red'   
オリジナルのタイプを識別する
  • typeofオペレータは、元のデータタイプに戻ることができる.しかし、typeof nullobjectに戻り、1つの値が空きタイプかどうかを判断する方式は、直接nullと比較することができる(===非強制変換比較)
  • .
  • 人はObject.prototype.toString.call()方法がより効果的だと思います.
    オリジナルの方法
    文字列、数字、およびboolean値は方法を持っていますが、彼らは対象ではありません.
    参照の種類
    参照値は、参照の種類の例です.オブジェクトは属性の無秩序リストであり、属性はキーペアを含み、キーは常に文字列であり、属性の値が関数である場合、この属性は方法です.
    オブジェクトを作成
    JavaScriptがオブジェクトを作成する方法はいくつかあります.
  • newオペレータとコンストラクタ   コンストラクタは、newオペレータによってオブジェクトを作成する関数であり、どの関数もコンストラクタであり得るが、JavaScriptコード仕様によると、JavaScriptにおけるコンストラクタは、イニシャル大文字で非構造関数と区別する必要がある.
  • var object = new Object(); 
    
    参照の種類は変数に直接オブジェクトを保存しないので、前述の例のObject変数は実際にはダンボールメモリ内の実際のオブジェクトの位置のポインタであり、参照であり、オブジェクトを保存する例ではない.これはオブジェクト(参照値)と元の値の間の基本的な違いです.元の値は変数に直接保存されます.変数にオブジェクトの値を割り当てると、実際にこの変数にコピーするポインタです.これは、一つの変数(一つのオブジェクトへの参照)を別の変数に割り当てた場合、二つの変数は同じポインタでメモリ内の同じオブジェクトを指します.
  • 字面の形式(内建タイプの実例化中に詳しく話すことができます)
  • オブジェクト参照解除
    JavaScript言語にはごみ収集機能がありますので、引用タイプを使う時はメモリの割り当てを心配する必要はありません.しかし、対象を使わないときは、それを引用して接触させ、ゴミ収集器にそのメモリを解放させたほうがいいです.参照を解除する最善の手段は、オブジェクト変数をnullに設定することです.(何百万ものオブジェクトを使用している巨大プログラムの中でも特に重要です)
    ビルドタイプの実装
    objectタイプはJavaScriptが提供する少量の内装参照タイプの一つです.ビルドの引用のタイプは以下の通りです.
    ビルドタイプ
    説明
    Aray
    配列の種類、数字を索引とする順序リストのセット
    Date
    日付と時刻の種類
    エロエロ
    運転期間エラータイプ
    Function
    関数の種類
    object
    共通オブジェクトタイプ
    RegExp
    正規表現
    文字どおりにオブジェクトを作成します.
    JavaScriptは、newオペレータとコンストラクタを使用しないで作成対象を表示する場合に参照値を生成することを許可します.
    /*  */ 
    var book1 = {   
      "name": "something",   
      "year": 2016 
    }  
    
    var book2 = new Object(); 
    book2.name = "something"; 
    book2.year = 2016; 
    
    /*  */ 
    var color1 = ["red", "blue", "green"];  
    
    var color2 = new Array("red", "bue", "green"); 
    
    /*  */ 
    function reflect(value){   
      return value; 
    }  
    
    var reflect2 = new Function("value", "return value"); 
    
    /*     */ 
    var numbers = /\d+/g;  
    var numbers = new RegExp('\\d', 'g'); 
    /** 
    *      ,                        。 
    **/ 
    
    アクセスのプロパティ
    属性はオブジェクトに保存されたキーパッドのペアで、ポイント番号はJavaScriptでアクセス属性の最も一般的なやり方ですが、中かっこでオブジェクトの属性値にアクセスすることもできます.(中かっこ形式はスペースの属性などにアクセスできます.)
    参照の種類を識別するtypeofおよびinstanceof(引き継ぎのタイプを識別する).すべてのオブジェクトはObjectの人の実例です.すべての引用タイプはObjectに引き継がれます.
    アーラの鑑識
    特別な状況:JavaScriptの値は一つのページの異なる枠の間で伝えられます.各ページは自分の大域的なコンテキストであるObject、Aray、その他のビルドタイプのバージョンを持っています.この場合、instanceofは、配列が異なるフレームからのArayの例であるため、識別できない._; ES 5にAray.isArayを適用することで、配列の値かどうかを明確に識別することができます.オリジナルパッケージタイプの  は、ブックレン、String、Numberの3種類があります.文字列、数字、ブール値を読み出すと、元のパッケージタイプが自動的に作成されます.(Talk is chap、show me the code) 例を挙げます.
      var name = "illuSioN4ng"; 
      var firstChar  = name.charAt(0); 
      console.log(firstChar);//"i" 
    
    背中に起こるのは:
      var name = "illuSioN4ng"; 
      var temp = new String(name);//     
      var firstChar  = temp.charAt(0); 
      temp =null;//        
      console.log(firstChar); 
    
    もう一つの例:
      var name = "illuSioN4ng"; 
      name.last = "Leon"; 
      console.log(name.last);//undefined 
    
    背中に起こるのは
      var name = "illuSioN4ng"; 
      var temp = new String(name);//    temp 
      var temp.last = "Leon"; 
      temp =null;//    temp    
      var temp1 = new String(name);//    temp1 
      console.log(temp1.last);//undefined 
      temp1 =null;//    temp1    
    
    元のパッケージタイプは常に作成されるが、これらの値においてinstanceofによって対応するタイプの戻り値がfalseに戻ることを確認する.これは、一時的なオブジェクトが読み取り時にのみ作成され、読み取りが終了するとすぐに破棄され、instanceofは本当に何も読み取られていないので、一時的なオブジェクトの作成がないので、falseに戻ります.元のパッケージタイプを手動で作成すると、いくつかの副作用を引き起こし、typeofオペレータは「object」に戻ります.手動でオリジナルのパッケージタイプを作成することを避け、不必要な誤解を避けるため、エラーを避ける.条件判定文においては、一つの対象が真実であると見なされ、その対象の値がfalseに等しいかどうかにかかわらず.例えば、jQueryでは直接jQueryオブジェクトを条件としないため、jQueryオブジェクトのlength属性の値が0かどうかを判定する条件としてDomが存在するかどうかを判断する必要があります.
    締め括りをつける
    JavaScriptにはクラスがありませんが、タイプがあります.各変数またはデータには対応する元のタイプまたは参照タイプがあります.5の元のタイプ(文字列、数字、bollan、null、undefined)の値は変数オブジェクトに直接保存されます.null以外はtypeofで識別することができる.空のタイプはnullと直接比較しなければ判断できません.(***個人的には、Object.prototype.toString.call()の方法がより効果的であると考えられています.**********************は、引用タイプがJavaScriptの中で最も近いもので、対象は引用タイプの例です.newオペレータとコンストラクタまたは文字どおりに新しいオブジェクトを作成できます.通常は、ポイント番号で属性と方法にアクセスできます.中かっこも使えます.関数はJavaScriptにおいてもオブジェクトであり、typeofで識別することができる.他の引用タイプについては、instanceofと構造関数を用いて判断できます.   元のタイプをより引用タイプに見えるようにするために、JavaScriptは三つのオリジナルパッケージタイプを提供しています.Number、String、Boolean.JavaScriptはこれらのオブジェクトを背後に作成します.普通のオブジェクトのようにオリジナルと彼らのいくつかの方法を使用することができます.しかし、これらの一時的な対象は使用終了後すぐに廃棄されます.手動でオリジナルのパッケージタイプを作成することもできますが、それらは誤解しやすいので、できるだけ避けてください.