オブジェクトのプロパティへのアクセスは、JavaScriptの基礎的なスキルです。この記事では、最も一般的な方法を解説し、それぞれの長所と短所を明らかにすることで、状況に最適なアプローチを選択できるよう支援します。
目次
ドット記法によるオブジェクトプロパティへのアクセス
ドット記法は、プロパティ名が事前にわかっている場合、オブジェクトプロパティにアクセスするためのクリーンで読みやすい方法を提供します。静的なキーに対しては簡潔で効率的です。
const myObject = {
name: "John Doe",
age: 30,
city: "New York"
};
const name = myObject.name; // nameは"John Doe"になります
const age = myObject.age; // ageは30になります
console.log(name, age); // 出力: John Doe 30
ブラケット記法によるオブジェクトプロパティへのアクセス
ブラケット記法は、変数や式をキーとして使用できるため、より柔軟性があります。これは、動的なキー、スペースや特殊文字を含むキー、またはオブジェクトプロパティを反復処理する場合に非常に役立ちます。
const myObject = {
name: "John Doe",
age: 30,
city: "New York"
};
let key = "age";
const age = myObject[key]; // ageは30になります
key = "city";
const city = myObject[key]; // cityは"New York"になります
let dynamicKey = "na" + "me";
const dynamicName = myObject[dynamicKey]; // dynamicNameは"John Doe"になります
console.log(age, city, dynamicName); // 出力: 30 New York John Doe
// オブジェクトプロパティの反復処理
for (let key in myObject) {
console.log(key + ": " + myObject[key]);
}
堅牢なエラー処理
いずれかの方法で存在しないプロパティにアクセスしようとすると、undefined
が返されます。予期しない動作を防ぐには、常にエラー処理を含めてください。
const myObject = { name: "John Doe" };
const key = "age";
const age = myObject[key];
if (age === undefined) {
console.log("プロパティ'age'は存在しません。");
} else {
console.log("年齢:", age);
}
適切な方法の選択
既知の静的なプロパティ名を使用する場合は、可読性のためにドット記法が推奨されます。ブラケット記法は、動的なキーアクセスやより複雑なシナリオの処理に必要な柔軟性を提供します。