オブジェクト

オブジェクトは、それぞれが プリミティブはデータ型で、1 つの重要な 違い: プリミティブとは異なり、オブジェクトは可変です。オブジェクトにデータを格納できる 変数などの識別子に関連付けられているが、object データは保持される 種類に関係ありません。

プリミティブを除き、すべての JavaScript 値はオブジェクトです。 プリミティブ リテラルは、 プロトタイプ型継承は JavaScript は実質的にオブジェクトで構成されているとよく言われます。

オブジェクト リテラルは、ゼロ個以上の Key-Value を中かっこで囲むペアです。 「プロパティ」と呼ばれる任意の JavaScript 値を含めることができます。

{     "myProperty" : true } 

プロパティ キーには、任意の記号または 文字列。ID を割り当てるときと同じ プロパティキーとして使用される文字列は予測可能で、 説明:

let carAttributes = {     "color" : "red" };  carAttributes > Object { color: "red" } 

プロパティキーには単一(')または二重引用符(")の文字列リテラルが必要です。 テンプレート リテラル:

let carAttributes = {     `keyString` : false }; > Uncaught SyntaxError: expected property name, got template literal 

プロパティ値には任意のデータ型を使用できます。オブジェクトのプロパティ自体は、 独自のプロパティを持つオブジェクトを格納:

let myObject = {     'key' : {         'subkey' : true,         'othersubkey' : false     } };  myObject; > Object { key: Object { subkey: true, othersubkey: false } } 

プロパティの値が関数の場合、そのプロパティは「メソッド」と呼ばれます。

const myObject = {     "myProperty" : true,     myMethod() {         console.log( "This is a method." );     } }  myObject.myProperty; > true  myObject.myMethod(); > "This is a method." 

new キーワードを使用してオブジェクトを作成することもできます。

let myObject = new Object(); 

上の例では、新しく作成されたオブジェクト リテラルに 使用できます。他のデータ型と同様に、使用可能な オブジェクトが想定されている場所に識別子のないオブジェクト。ただし、 オブジェクト リテラルでは、混乱を招く可能性があるコンテキストで括弧が必要 この 2 つは中かっこの構文({})を共有していることを前提としています。 変数の初期化では不要です。

{ "value" : 2 } > Uncaught SyntaxError: unexpected token: ':'  ({ "value" : 2 }) > Object { value: 2 }  let valObj = { "value" : 2 };  valObj; > Object { value: 2 } 

プリミティブとは異なり、作成の結果に意味のある違いは オブジェクト リテラルを作成し、new Object() を使用して作成する必要があります。これは、 いずれの場合も、 Object プロトタイプ。ただし、この 2 つのデータには実際的な違いが 1 つあります。 学びました。

new キーワードは、後でデータを格納する空のオブジェクトを定義する必要があります。

let myObject = new Object();  myObject.booleanValue = true; myObject.stringValue = "My string."; 

オブジェクト リテラルには、作成時にデータを入力できます。

let myObject = {     'booleanValue' : true,     'stringValue' : "My string." }; 

実用性はほとんどありませんが、new Object() を使用してプリミティブに変換できます。 などのように、データ値をそれぞれの型のオブジェクトに new キーワードとコンストラクタ 使用します。たとえば、次の要素は機能的に同等です。 new Number( 10 ):

let myObject = new Object( 10 );  myObject; > Number { 10 } 

nullundefined の値は、機能的に同じ空のオブジェクトになる 引数を指定せずに new Object() を呼び出す場合と同じです。

オブジェクト リテラルを引数として new Object() に渡すと、そのオブジェクトが渡されます。 そのまま使用します。

let myObject = new Object( { myValue : 10 } );  myObject; > Object { myValue: 10 } 

プリミティブ値にコンストラクタを使用する場合と同様に、オブジェクトにはコンストラクタを使用します。 オブジェクト リテラル表記を使用するメリットはほとんどありません。作成時や 空のオブジェクトには後で値が代入されますが、デベロッパーは一般的に わかりやすくするためにリテラル表記を使用します。

理解度をチェックする

オブジェクトのプロパティの設定には、どのような表記法を使用できますか。

ドット表記
角かっこ表記
ピリオドの表記
線の表記

値を取得するための正しい構文は次のうちどれですか。 /myProp

myObj["myProp"];
myObj{"myProp"};
myObj("myProp");