処理フロー(if, switch, for in, for of, 例外)

JavaScriptの基本的な処理フロー(if, switch, for in, for of, 例外)の書き方についてまとめました。

if

const x = 250

if (x > 200) {
  console.log('200より大きい')
} else if (x > 100) {
  console.log('100より大きい')
} else {
  console.log('それ以外')
}  // 200より大きい

switch

const x = 250

switch(x) {
  case '100' :
    console.log('100です')
    break
  case '150' :
    console.log('150です')
    break
  default :
    console.log('その他です')
    break
}  // その他です

while

let x = 1

while(x < 5) {
  console.log(x)
  x++
}

// 1
// 2
// 3
// 4

for

for

for (let x = 1; x < 5; x++) {
  console.log(x)
}

// 1
// 2
// 3
// 4

for in

連想配列の要素を1つずつ処理するのに活用できます。

const object = {
  'key1': 'value1',
  'key2': 'value2',
  'key3': 'value3'
}

for (let key in object) {
  console.log(`key: ${key} value: ${object[key]}`)
}

// key: key1 value: value1
// key: key2 value: value2
// key: key3 value: value3

for of

配列で for in を利用すると余計な値まで拾ってしまいます。
配列の場合 for of を利用します。

for (let value of [1, 2, 3]) {
  console.log(`value: ${value}`)
}

// value: 1
// value: 2
// value: 3

例外

try {
  const x = y.z
} catch(e) {
  console.log('例外発生')
  console.log(e)
} finally {
  console.log('必ず通ります')
}

// 例外発生
// ReferenceError: y is not defined
//    at window.onload ((index):32)
// 必ず通ります

let|ブロックスコープ

ES2015で導入されたletを利用するとブロックスコープになります。

if (true) {
  var x = 1
}

if (true) {
  let y = 1
}

console.log(x)  // 1
console.log(y)  // Uncaught ReferenceError: y is not defined

varで定義された x はブロックの外でもアクセスできてしまいます。
let で定義された y はブロックの外からアクセスできません。

わくわくBank.
フリーランスのエンジニアとして活動してます。ここでは、ソフトウェア開発で必要とされる技術、用語、概念を整理しています。

JavaScriptに関連する書籍 (Amazon)