とある記事ではJavaScriptのfor
句を巡って議論が交わされていたので少し興味をもちました。私はこれらの議論に参加できるほどの専門力はありませんが感想程度に。
間違い等あればコメントいただけますと幸いです。
読み取れたこと
メリット
- 行数が減る
- ネストが深くなりづらい
- 可読性...?
🤔.js
const a = [];
for (let i=0; i<=99; i++){
a.push(i);
}
const a = Array(100).fill().map((_, i)=>i)
- 一度
for
なしを見てしまったが最後、「ひとつひとつ取り出して〜する」みたいな思想はなんだか原始的に感じる? - なんか
let
ォ?!的な印象 -
push()
は破壊的メソッドなのでなんか印象が悪い - 副作用が少ないなど
デメリット
- 遅い ← 泣いた😭
これは正直意外でした。誰がどう見ても早く見える。省略記法=高速処理という観念を根っこから削ぎ落とす現実がそこにはあった。
※ 🤔.jsの比較結果、 「code block 1」がfor
を使った方
Pythonだと内包表記なるものの方が速かったりするのですが...
まあこれはどちらもfor
を使ってるので例が悪いですね。良い例があればコメントお願いします
🐍.py
a = []
for i in range(100):
a.append(i)
a = [i for i in range(100)] # faster!
なんかステキやん
- 結論から言うと、処理の複雑さによって使い分けが重要だなと感じだところです
- ただ、メソッドチェーン表記は一種のロマンというか、クソ難しい処理を一発でかけた時の達成感がヤバい
- だから私はメソッドチェーン