1. ホーム
  2. javascript

[解決済み】未定義のプロパティ 'forEach' を読み取ることができない

2022-02-07 11:34:31

質問

var funcs = []
[1, 2].forEach( (i) => funcs.push( () => i  ) )

なぜ、以下のようなエラーが出るのでしょうか?

TypeError: Cannot read property 'forEach' of undefined
    at Object.<anonymous>

しかし、このエラーは、セミコロン ; を1行目の末尾に追加します。

解決方法は?

1行目の行末にセミコロンがありません。そのため、2行が一緒になってしまい、値を設定したと解釈されます。 funcs になります。

[][1, 2].forEach( (i) => funcs.push( () => i  ) )

式は 1, 2 は、単に 2 ( カンマ演算子 ということは、空の配列のインデックス2にアクセスしようとしているわけです。

[][2] // undefined

そして undefined には forEach メソッドを使用します。これを解決するには、常に行末にセミコロンを付けるようにしてください(付けない場合は、自分が何をしているのか確認してください)。