メインコンテンツにスキップ
モジュール 3 · レッスン 2 / 4コース内の 10/32~10 min
モジュールのレッスン (2/4)

オブジェクト: キーと値のマップ

JS の オブジェクト は、キー → 値 ペアの順序付けされていないコレクションです。 キーは文字列 (または Symbol)、値は数値、文字列、 配列、その他のオブジェクト、関数。これは、最もよく使用されるデータ構造です。 言語: ドメイン内のすべての「レコード」は通常、オブジェクトになります。

JS
const utente = {
  nome: 'Anna',
  eta: 28,
  attivo: true,
  ruoli: ['admin', 'editor'],
};

読み取りプロパティ: ドットと括弧

同等の表記法が 2 つあります。

JS
utente.nome; // 'Anna'    (dot — the normal form)
utente['nome']; // 'Anna'    (bracket — equivalent)

// Brackets are MANDATORY when:
// 1) the key is not a valid identifier
const tag = { 'codice-fiscale': 'ABC123' };
tag['codice-fiscale']; // OK
// tag.codice-fiscale;      // syntax error

// 2) the key is computed (variable/expression)
const campo = 'eta';
utente[campo]; // 28

欠落 プロパティは、エラーなしで undefined を返します。

JS
utente.telefono; // undefined

追加、変更、削除

JS
const u = { nome: 'Anna' };
u.eta = 28; // adds
u.nome = 'Anna B.'; // modifies
delete u.eta; // removes the property

delete はキーワードです。これはまれな使用例であることが判明します。 そのキーを使用せずに 新しい オブジェクトを生成したい場合があります (これを見ていきます) スプレッドあり)。

略記: 変数のような名前のキー

キー名が変数名と一致する場合は、重複を省略できます。

JS
const nome = 'Anna';
const eta = 28;

const u1 = { nome: nome, eta: eta }; // explicit form
const u2 = { nome, eta }; // shorthand, equivalent

物件の存在確認

3 つのオプションを優先順に示します。

JS
'nome' in utente; // true   ← in operator
utente.nome !== undefined; // true   ← works almost always
Object.hasOwn(utente, 'nome'); // true   ← modern, safe

試してみてください

運動#js.m3.l2.e1
試行回数: 0読み込み中…

オブジェクト user = { name: 'Sara', age: 22 } を作成し、true に設定された 'active' プロパティを追加して、最後の式としてオブジェクトを返します。

エディターを読み込み中…
ヒントを表示

ドット表記を使用して、後でプロパティを追加できます。

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m3.l2.e2
試行回数: 0読み込み中…

`product = { code: 'A1',price: 9.9 }` と文字列 `key = 'price'` を指定すると、括弧表記を使用して価格を返します (最後の式は 9.9 と評価される必要があります)。

エディターを読み込み中…
ヒントを表示

括弧を使用すると、変数をキーとして渡すことができます。

3 回の試行後に解決策が利用可能になります