6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

 for,forEach,for..in,for..ofの違いとはなんぞや

Posted at

javascript繰り返し処理の種類多すぎないか?
備忘録的にまとめました。
(プログラミングを勉強し始めたばかりなので内容薄い!!どんどん内容濃くしていきたい、、)

通常のfor:relaxed:
初学者でもわかりやすい通常のfor
指定した回数で繰り返し処理をしてくれるのでめっちゃ簡単!
コードが長くなりがちだが、基本全てこれでなんとかなる。

forEach :v:
配列要素に対して繰り返し処理してくれる。
僕は、queryselecterAll()でNodeListを受け取り、それをforEachで回す事が多い。
forEachでcontinue,breakは使えないので要注意。
for ..ofと機能は殆ど変わらない。
この中では唯一、ループ構文ではなくメソッドである。
引数にインデックスを使える。

for..in:raised_hand:
オブジェクトに使用できる繰り返し処理。
for(key(変数名) in obj)という形で回していく。
基本的に要素が入った順で処理が行われるが順番は保証していないのであまり使わない方が良いのかも。
あとデータ量が多いと遅くなるらしい。
配列に回すとインデックスが返される。(for..ofはvalueが返される)

for..of:baby:
foreachとほとんど機能は同じ。
ただ、forEachと違ってcontinue、breakが使用できる上に
イテラブルなオブジェクト(配列、マップ、文字列等)に使用できる点でforEachより幅が広いのかもしれない。
indexを使うにはObject.entriesを使用しkeyとvalueのペアの配列にする

結論、使うならfor,かforEach、for..ofにしましょう。
次回はイテレーター、ジェネレーターとはなんぞやという内容で投稿をしたいです。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?