質問: { a:1, b:2, }; Object.keys(obj).forEach(key => { console.log(`${key}:${obj[key]}`); }) } ``` こちらのプログラムの仕組みがわからず調べた結果、以下の質問と回答を見つけました。 しかし、完全に疑問が解決できてないので質問をさせていただきます。 こちらの質問において回答でobj[key]のkeyは変数であるため、console.log(`${key}:${obj[key]}`);のように書くという風に書かれておられました。 しかし、この回答におけるobj[key]は一体どこで宣言されたのか。つまりオブジェクトobjがどのタイミング配で列に変更されているのかがわかりません。 そこで質問なのですが、このobj[key]はいつ宣言されるもしくは配列に変更されたのか教えていただきたいです。よろしくお願いいたします。
回答: objは最初に宣言されてからずっとobjectのままです。 `obj.a` でも `obj['a']` でも同じ要素にアクセスできます。 `obj.a` のようにドットで繋いでアクセスするほうがシンプルだしわかりやすいので多用されますが、中にはドットで繋げられないキーもあるので、そのときはブラケットに囲んでアクセスします。 具体的には `obj = {'123': 'abc'}` というオブジェクトの値に `obj.123` ではアクセスできません。 `obj['123']` とする必要があります。 MDM