JavaScript/for...in
for...in
for...in は、JavaScript においてオブジェクトの列挙可能なプロパティを反復処理するための制御文です。この構文を使用すると、オブジェクトのすべての列挙可能なプロパティのキーを順に取得することができます。
構文
for (variable in object) { // 実行するコード }
各部分の説明:
for...in
はプロトタイプチェーン上のすべての列挙可能なプロパティを含むため、注意が必要です。
使用例
オブジェクトのプロパティを列挙
// オブジェクトの列挙例 const person = { name: 'Alice', age: 30, city: 'Tokyo' }; for (let key in person) { console.log(`${key}: ${person[key]}`); }
この例では、person
オブジェクトのすべてのプロパティ名が key
に代入され、その値を取り出しています。
プロトタイプチェーンの影響
// プロトタイプチェーン上のプロパティも列挙される例 const obj = Object.create({ inheritedProp: 'value' }); obj.ownProp = 'ownValue'; for (let key in obj) { console.log(key); // "inheritedProp" と "ownProp" が出力される }
この例では、Object.create
を使用して生成されたオブジェクトのプロトタイプ上のプロパティも列挙されることを示しています。
hasOwnProperty
の使用
// オブジェクト自身のプロパティのみを列挙 for (let key in obj) { if (obj.hasOwnProperty(key)) { console.log(key); // "ownProp" のみ出力される } }
この例では、hasOwnProperty
メソッドを使用して、オブジェクト自身のプロパティのみを列挙しています。