ray88’s diary

お仕事で困ったとき用の自分用の覚書

JavaScript  ブロック

JavaScript 目次 - ray88’s diary
JavaScript グローバル領域 - ray88’s diary
javaScript スコープとその種類 - ray88’s diary

■ブロック:ステートメントをグループ化したもの
 ※varキーワードにより宣言された変数はブロックスコープをもつことができない。
 ※関数スコープまたはグローバルスコープの変数はletキーワードによる宣言でも
  実現可能なためvarキーワードを使用する必要はない、    
【構文①】

{
  //処理
}

※if文などの条件式の結果として実行する範囲やfor文などの反復の対象範囲は波カッコで囲うが、それらも全てブロックである。
ブロック内部のletキーワードもしくはconstキーワードによる変数および定数はブロックスコープを持つ。
例えば、if文の構文はブロックを用いて以下の様に表現できる

if(条件式)ブロック

もし、ブロック内のステートメントがひとつの場合、波カッコでグループ化の必要はなくなるので波カッコは省略可能。
波カッコの省略はif文に限らず、ブロックを用いて記述できる分岐や反復の各構文でも同様。

if(条件式) ステートメント

【サンプルコード】

function myFunction(){
  let num = 1;
  for(let i = 1; i <= 10; i++){
    num *= 2;
    console.log(`iの値:${i},numの値:${num}`);
    //波カッコを省略してif文を1行で記述
    if(num > 50) break;
  }
}


■関数定義の際の波カッコの省略について
 function文、関数リテラル、メソッド構文等では省略不可。
 アロー関数であればステートメントが1つの時に省略可能。