LoginSignup
0
0

More than 1 year has passed since last update.

反復処理

Posted at

ループ文

for文

for(let i = 0; i < 10; i++){
  console.log(i);
}

出力結果 0 1 2 3 4 5 6 7 8 9 

for(初期値  forから抜ける条件  iが1ループごとにどのように変化していくか){}

while文


let i = 0;
while(i < 10) {
  console.log('i');
  i++;
}

出力結果 0 1 2 3 4 5 6 7 8 9 

let i = 0; など、初期値設定
while(ループを継続する条件){}






演算子

A ? B

値(オペランド)をもとに処理を行い、結果を返す記号

演算子の優先順位

リンク内について↑
<結合性>
演算子が値に挟まれていた時、どちらから処理を行うのか

let a = 0;
console.log(a);

let b = a++;
console.log(b);

出力結果
0
0

インクリメント演算子(++)は前につけるか後につけるかで結果が変わる。

+が後ろの場合.js
let a = 0;
console.log(a);

let b = a++;
console.log(a,b);

出力結果
0
1,0     
+が前の場合.js
let a = 0;
console.log(a);

let b = ++a;
console.log(a,b);

出力結果
0
1,1     //aの0に対して+1された値が出力される
let a = 0;
let b;

a = (b = a) +1;

function fn() {
  let a = 0;
  return a++;
}

console.log(!fn() * 5);
           //(!0 * 5) ⇨ falseじゃない(1)✖️5ってこと
出力結果 5


グループ化を用いて!(内容)と記述すると

console.log(!(fn() * 5));
          // !0 と同意なので
出力結果 true



ループ文とブロックスコープ

for(let i = 0, i < 5; i++){
  const j = i * 2;
  setTimeout(一秒後行う処理,1000);
}

for(let i = 0; i < 5; i++){
  const j = i * 2;

  setTimeout(function() {
    console.log(j);
  },1000);
}

出力結果
0
2
4
6
8




配列とループ

const arry = [1, 2, 3, 4, 5];

for(let i = 0; i< arry.length; i++) {
  console.log(arry[i]);
}

配列.length で配列の要素を取得できる。
ここでは i< arry.length; で 全ての各配列の要素と、iを比較している

while文で書き換え↓

const arry = [1, 2, 3, 4, 5];

let v, i = 0;
while(v = arry[i++]){
  console.log(v);
}

条件 arry [ i++ ] 各配列の要素をプラス1(i)したものがv




for...inと列挙可能性

列挙可能*プロパティーに対して準不動で反復処理を実行する。
*文字列プロパティ名/値/キー値ペアの配列
プロトタイプチェーン内も列挙対象となる。

symbolで定義したプロパティーはfor...inで列挙対象にならない。

for...ofと反復可能性

for ... of を使用することによってイテレーターを持つオブジェクトの反復操作を行う。

イテレーターとは
反復操作を行う際に使用するオブジェクト。(string,array,map,set,arguments,etc...)
これらのオブジェクトは反復可能オブジェクトと呼ばれ、for...ofの使用が可能

mapとset

データを管理するための入れ物(コレクション)。

オブジェクトとmapの違い

オブジェクト map
キー 文字列 制約なし(数値、obj、関数など)
for...in ループ可能 ループ不可能
Array set
重複値 ⭕️
for...in ループ可能 ループ不可能
for...of ループ可能 ループ可能
0
0
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
0
0