Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

for in 文はなぜ非推奨

const obj = {
a : "",
b : "" 
}

for(obj in aaa){
console.log(aaa)
}

これが非推奨で

const obj={
a : "",
b : ""
}

Object.entries(obj).forEach(([key,val])=>{
console.log({key,val})
}
)

これを最近は使っているらしいのですが、なぜですか?
コードの長さ的にfor in文の方がいいと思うのですが、、、

0

1Answer

コードの長さやパフォーマンスというより、非推奨の理由は「言語仕様」によるものだと思います。

for...inは、継承されているプロトタイプチェーンのプロパティもループします。
つまりバグになりやすい部分です。

そのため堅い現場では、下記のようにESLintを使って、不適切なfor...inの使用方法をエラーにさせる事もあります。
https://eslint.org/docs/rules/guard-for-in

3Like

Your answer might help someone💌