以下のコードにおいて自分では理解できない点があります。
JavaScript
1const obj = { 2 a: 1, 3 b: 2, 4 c: 3, 5}; 6 7Object.keys(obj).forEach((key) => { 8 console.log(`${key} : ${obj[key]}`); // 「a : 1, b : 2, c : 3」と出力される。 9}) 10 11Object.keys(obj).forEach((key) => { 12 console.log(`${key} : ${obj.key}`); // 「a : undefined, b : undefined, c : undefined」と出力される。 13}) 14 15//対して 16 17console.log(obj['a']); //「1」と出力される。 18 19console.log(obj.a); //「1」と出力される。 20
私の頭の中では、
Object.keys(obj)によって、objオブジェクトから[a, b, c]の配列を取得
↓
forEachの引数「key」が各キー(a, b, c)に割り当てられ、それぞれ代入していき、
↓
「obj.a, obj.b, obj.c」となり、「1, 2, 3」が出力される、
と思っていたのですが、結果は「undefined」になってしまいました。
しかし「console.log」で両記法で出力してみた結果、同じ値が帰ってきます。
これは何が違うのでしょう?
独学でJavaScriptを始めたのですが、一々思っていたものと違う動作をしてきて頭がイカれそうです。
どなたかご教授よろしくお願いいたします。 m( _ _ )m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/10 18:10