JavaScriptの型とオブジェクト

JavaScriptの(1)

基本データ型のJavaScript

  1. 未定義;
  2. ヌル;
  3. ブール;
  4. 文字列。
  5. 数;
  6. シンボル;
  7. オブジェクト。

ことに留意されたい
JavaScriptコードではなく、キーワードの未定義の変数である
+0を区別-0及びその方法は、1 / X =±無限大(無限大)である分化のJavaScript

非整数== ===比較を使用したりすることはできません
同じかどうかを決定するために最小値の精度をテストします

  console.log( Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON);

シンボルは、すべての非文字列のコレクションですES6が導入された新しいタイプは、キーのオブジェクトである
グローバルを使用して作成略号機能

    var mySymbol = Symbol("my symbol");

JavaScriptのクラスのオブジェクトの唯一のプライベート属性

JavaScriptオブジェクト

  • 有するオブジェクトの一意の識別子:たとえ二つの同一のオブジェクトは、同じオブジェクトではありません。
  • ステートフルオブジェクト:オブジェクトは、状態を有する、同一のオブジェクトの下に異なる状態であってもよいです。
  • おそらく、その動作の変更ので、オブジェクトの状態:オブジェクトが動作しています。

JavaScriptでは、「プロパティ」として抽象的統一の状態と振る舞いは
JavaScriptで実行時にオブジェクトにプロパティを追加することができます

    var o = { a: 1 };
    o.b = 2;
    console.log(o.a, o.b); //1 2

JavaScriptのオブジェクトには2つの属性
の属性データ最初のクラス属性を
第二のクラスのプロパティであるアクセッサ(ゲッター/セッター)の特性を

定義し、プロパティを表示

    var o = { a: 1 };
    Object.defineProperty(o, "b", {value: 2, writable: false, enumerable: false, configurable: true});
    //a 和 b 都是数据属性,但特征值变化了
    Object.getOwnPropertyDescriptor(o,"a"); // {value: 1, writable: true, enumerable: true, configurable: true}
    Object.getOwnPropertyDescriptor(o,"b"); // {value: 2, writable: false, enumerable: false, configurable: true}
    o.b = 3;
    console.log(o.b); // 2

データ属性や特性値の固有値プロパティの値にアクセスするには、属性文字列や記号キーとして、「プロパティを設定」するときのJavaScriptオブジェクトが実行されています。
{writable:true,value:1,configurable:true,enumerable:true}
値は、JavaScriptオブジェクトの特徴である、可能なシンボルプロパティ名であるために、あります

JavaScriptのプロトタイプ


  • すべてのオブジェクトは、プライベートフィールド[[プロトタイプ]]がある場合は、そのオブジェクトのプロトタイプです。

  • オブジェクト自体は、それはプロトタイプが空または発見されるまで、プロトタイプオブジェクトにアクセスしていきますしない場合は、プロパティをお読みください。


  • 指定されたプロトタイプを持つ新しいオブジェクトを作成Object.create、プロトタイプはNULLにすることができます。
  • Object.getPrototypeOfオブジェクトのプロトタイプが得られます。
  • Object.setPrototypeOfは、オブジェクトのプロトタイプを設定します。
var cat = {
    say(){
        console.log("meow~");
    },
    jump(){
        console.log("jump");
    }
}

var tiger = Object.create(cat,  {
    say:{
        writable:true,
        configurable:true,
        enumerable:true,
        value:function(){
            console.log("roar!");
        }
    }
})


var anotherCat = Object.create(cat);

anotherCat.say();

var anotherTiger = Object.create(tiger);

anotherTiger.say();

function c1(){
    this.p1 = 1;
    this.p2 = function(){
        console.log(this.p1);
    }
} 
var o1 = new c1;
o1.p2();



function c2(){
}
c2.prototype.p1 = 1;
c2.prototype.p2 = function(){
    console.log(this.p1);
}

var o2 = new c2;
o2.p2();

第一の方法は、このプロパティを追加するために、直接、コンストラクタでこれを修正することです。
第二の方法は、このプロトタイプコンストラクタからすべてのオブジェクトを構築しているコンストラクタプロトタイププロパティポインティングオブジェクトを変更することです。

JavaScriptでのオブジェクトの分類

  • ホスト・オブジェクト(ホストオブジェクト):JavaScriptのホスト環境によって提供されるオブジェクト、彼らの行動は完全にホスト環境によって決定されます。

  • ビルトインオブジェクト(組み込みオブジェクト):JavaScript言語によって提供されるオブジェクト。

    • 組み込みオブジェクト(組み込みオブジェクト):基準では、オブジェクトのインスタンスを作成するには、自動的にJavaScriptランタイムを使用して作成されます。
    • ネイティブオブジェクト(ネイティブオブジェクト):オブジェクトでき​​るアレイ、RegExpオブジェクトのコンストラクタまたは作成を介してユーザによって構築された他の特殊な構文。
    • キーワードを作成したオブジェクトのプロトタイプ構文{}、オブジェクトクラスコンストラクタまたはクラス定義によって継承することができる共通のオブジェクト(通常オブジェクト):,。

おすすめ

転載: www.cnblogs.com/singworld/p/11593822.html