javascript エラー「Uncaught SyntaxError: Illegal break statement」の解決方法

javascript エラー「Uncaught SyntaxError: Illegal break statement」の解決方法

javascriptで、エラー「Uncaught SyntaxError: Illegal break statement」が発生した場合の原因と解決方法を記述してます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 106.0.5249.103

エラー内容

以下のコードで発生。

function hoge(){
  
  break;
  
}

エラーメッセージ

Uncaught SyntaxError: Illegal break statement

画像

firefox(バージョン105)では、以下のエラーとなります。

Uncaught SyntaxError: unlabeled break must be inside loop or switch

画像

原因

breakは、for 文や、while 文などでしか使用できないため

解決方法

「return」を使用するか、

function hoge(){
  console.log( '1' )  
  return;
  console.log( '2' ) 
}

hoge() // 1

「break」を使用したければラベルを使用する

function hoge(){
  foo : {        
        console.log( '1' )       
        break foo ;
        console.log( '2' )       
    }    
}

hoge() // 1

その他のパターン

「for文」や「while文」でしか使用できないので「forEach」でも使用できません。

let arr = ["a", "b", "c"];

arr.forEach(function (v,i) {
  if(i == 1) break; // Uncaught SyntaxError: Illegal break statement
});

「forEach」で使用するには、以下のように、無理やり条件時に配列の長さを最大値に変更して、終了させます。

let arr = ["a", "b", "c"];

arr.forEach( function (v,i,arr) {

  console.log(v,i)

  if (i == 1) {
    arr.length = i + 1; // 最大インデックス番号を変更する
  }

})

実行結果