コンテンツにスキップ

JavaScript/ドット参照演算子

出典: フリー教科書『ウィキブックス(Wikibooks)』


ドット参照演算子 は、ECMAScript の左辺値式(Left-Hand-Side Expressions)の一つで、オブジェクトのプロパティにアクセスするための構文です。この構文は、オブジェクトのプロパティをドット記法(.)を使用して参照するために使用されます[1]

構文

[編集]
MemberExpression[?Yield, ?Await] . IdentifierName
  • MemberExpression[?Yield, ?Await]: オブジェクトを評価する式。YieldAwait は、ジェネレーター関数や非同期関数内での使用を制御するためのオプションのパラメータです。
  • IdentifierName: アクセスするプロパティの名前。これは識別子として有効な文字列でなければなりません。

この構文は、オブジェクトのプロパティにアクセスするために使用され、プロパティの値が返されます。

[編集]

基本的な使用法

[編集]

以下のプログラムは、MemberExpression . IdentifierName の基本的な使用法を示しています。

// 基本的な使用法
const obj = {
  prop1: "value1",
  prop2: "value2"
};

// ドット記法を使用してプロパティにアクセス
console.log(obj.prop1); // "value1"
console.log(obj.prop2); // "value2"

このプログラムでは、obj オブジェクトの prop1prop2 プロパティにドット記法を使用してアクセスしています。

ネストされたオブジェクトでの使用

[編集]

以下のプログラムは、ネストされたオブジェクトでの MemberExpression . IdentifierName の使用例を示しています。

// ネストされたオブジェクトでの使用
const obj = {
  nested: {
    prop1: "nestedValue1",
    prop2: "nestedValue2"
  }
};

// ネストされたオブジェクトのプロパティにアクセス
console.log(obj.nested.prop1); // "nestedValue1"
console.log(obj.nested.prop2); // "nestedValue2"

このプログラムでは、ネストされたオブジェクトのプロパティにドット記法を使用してアクセスしています。

動的なプロパティ名での使用

[編集]

以下のプログラムは、動的なプロパティ名での MemberExpression . IdentifierName の使用例を示しています。

// 動的なプロパティ名での使用
const obj = {
  prop1: "value1",
  prop2: "value2"
};

const propName = "prop1";

// ドット記法では動的なプロパティ名は使用できない
// console.log(obj.propName); // undefined

// ブラケット記法を使用して動的なプロパティ名にアクセス
console.log(obj[propName]); // "value1"

このプログラムでは、ドット記法では動的なプロパティ名を使用できないため、ブラケット記法を使用して動的なプロパティ名にアクセスしています。

関数呼び出しでの使用

[編集]

以下のプログラムは、関数呼び出しでの MemberExpression . IdentifierName の使用例を示しています。

// 関数呼び出しでの使用
const obj = {
  method: function() {
    return "method called";
  }
};

// ドット記法を使用してメソッドを呼び出す
console.log(obj.method()); // "method called"

このプログラムでは、obj オブジェクトの method メソッドをドット記法を使用して呼び出しています。

注意点

[編集]
  • プロパティ名の制約: ドット記法を使用する場合、プロパティ名は有効な識別子でなければなりません。例えば、obj.123 は無効です。
  • 動的なプロパティ名: ドット記法では動的なプロパティ名を使用できません。動的なプロパティ名を使用する場合は、ブラケット記法(obj[propName])を使用する必要があります。
  • プロパティの存在チェック: 存在しないプロパティにアクセスすると、undefined が返されます。プロパティの存在を確認するには、in 演算子や hasOwnProperty メソッドを使用します。

脚註

[編集]
  1. ^ この構文は、オブジェクトのプロパティにアクセスするための最も一般的な方法の一つです。

外部リンク

[編集]