非捕捉構文エラー:予期しない入力の入力-原因と修正!


JavaScriptでのエラーがデバッグするのは難しいかもしれません.Chrome Developer Toolsなどのすべての現代的なツールでは、デバッグははるかに簡単になりましたが、デバッグにトリッキーな問題に遭遇したときもあります.そのような問題の一つは、「捕捉されていないsyntaxerror :予期しない入力終了」エラーです.
そのような問題をデバッグする方法と、それらを引き起こすかもしれないことを見てみましょう.

JavaScriptの予期しない入力の原因は何ですか?
さて、多くの回数、「捕捉されていない構文エラー:原因不明の入力終了」エラーの原因は、括弧、括弧、引用符を欠いています.以下の例を見てみましょう.
var addPost = function() {
   //add a new post when called
}

var editPost = function() {
   //edit the post when called
}

var deletePost = function() {
   //delete a post when called

var publishPost = function() {
   //publish a post when called
}
すべてのコードは上記のコードでよく見えますが、これは予期しない入力エラーの終わりを投げていました.しかし、注意深く見るならば、あなたはdeletePost メソッドは、エラーを引き起こしている不足している閉じ括弧(})を持ちます.
数百行のコードを持つJavaScriptファイルでは、括弧の行を1行ずつ追跡するのは非常に面倒です.このようなエラーをキャッチし、次のセクションに示すように、それらを避けるためのより簡単な方法があります.

キャッチされたsyntaxerrorを修正する方法:JavaScriptまたはJQueryの入力エラーの予想外の終わり?
この問題の原因を知っているので、デバッグ方法も簡単です.コードと括弧と括弧を線ではっきりと調べることができますが、大きなファイルの場合、それは有効な方法でありません.簡単な方法は任意のツールを使用することです.
私が推薦するそのようなツールはhttps://jshint.com/ .
一度Jshintを訪問し、そこにJavaScriptコードをコピーして貼り付けます.これは、コードの自動スキャンを実行し、ツールが検出する警告とエラーをすべて一覧表示します.
JShintの上で上記のコードをペーストするならば、あなたはそれが「マッチしない」{'.」警告を示すと気がつきます.

スクリーンショットが表示されませんJShintツールで比類のないブラケット警告

他の理由が原因でブラケットが不足していないためにエラーが発生することはできますか?
はい!問題が大部分の括弧、括弧、引用符のために引き起こされるというのは、本当ですが、Ajax呼び出しによって返されたJSONから空の応答を解析しようとするときはいつでも、予期しない入力エラーの終わりもまた上がることができます.
このような場合、返されるデータを使用する前に、データが実際に返されるかどうかを条件チェックを追加します.
たとえば、jQueryで次のAjax呼び出しを考えます.
$.ajax({
   url: url,
   ...
   success: function (response) {

      if(response.data.length == 0){
         // this condition would prevent a blank json from being parsed
         // Empty response returned, maybe show an error etc
      }else{
        //Parse the JSON and use it
      }
   }
});
上記のコードでは、応答を受信したら、返されるデータの長さが0かどうかを確認できます.つまり、返されるデータが空の場合、ハンドラーメソッドを記述したり、エラーをユーザーに表示したり、エラーが発生した場合はデータを解析して使用します.この条件がなければ、コードは予期しない入力エラーの終了をスローしました.
以前に述べたように、JavaScriptでの「捕捉されていないシンタックスエラー:予期しない入力終了」エラーは様々な理由から生じることがありますが、大多数の時間は、括弧、ブラケット、クォートを欠落させたり、空のjsonを解析したりするためです.しかし、そのような問題を発見し、回避する簡単な方法はJShintのようなバリデータを通してJavaScriptを実行することです.COM .WebPackを使用している場合は、ビルド時にJSLintingを構成することもできます.ビルドプロセスでは、ビルド時に警告やエラーが表示されます.この記事は役に立つでしょうか.コメントでお知らせください!
郵便Uncaught SyntaxError: Unexpected end of input – Causes And Fix! 初登場MoreOnFew .