非捕捉構文エラー:予期しない入力の入力-原因と修正!
3499 ワード
JavaScriptでのエラーがデバッグするのは難しいかもしれません.Chrome Developer Toolsなどのすべての現代的なツールでは、デバッグははるかに簡単になりましたが、デバッグにトリッキーな問題に遭遇したときもあります.そのような問題の一つは、「捕捉されていないsyntaxerror :予期しない入力終了」エラーです.
そのような問題をデバッグする方法と、それらを引き起こすかもしれないことを見てみましょう.
JavaScriptの予期しない入力の原因は何ですか?
さて、多くの回数、「捕捉されていない構文エラー:原因不明の入力終了」エラーの原因は、括弧、括弧、引用符を欠いています.以下の例を見てみましょう.
数百行のコードを持つJavaScriptファイルでは、括弧の行を1行ずつ追跡するのは非常に面倒です.このようなエラーをキャッチし、次のセクションに示すように、それらを避けるためのより簡単な方法があります.
キャッチされたsyntaxerrorを修正する方法:JavaScriptまたはJQueryの入力エラーの予想外の終わり?
この問題の原因を知っているので、デバッグ方法も簡単です.コードと括弧と括弧を線ではっきりと調べることができますが、大きなファイルの場合、それは有効な方法でありません.簡単な方法は任意のツールを使用することです.
私が推薦するそのようなツールはhttps://jshint.com/ .
一度Jshintを訪問し、そこにJavaScriptコードをコピーして貼り付けます.これは、コードの自動スキャンを実行し、ツールが検出する警告とエラーをすべて一覧表示します.
JShintの上で上記のコードをペーストするならば、あなたはそれが「マッチしない」{'.」警告を示すと気がつきます.
スクリーンショットが表示されませんJShintツールで比類のないブラケット警告
他の理由が原因でブラケットが不足していないためにエラーが発生することはできますか?
はい!問題が大部分の括弧、括弧、引用符のために引き起こされるというのは、本当ですが、Ajax呼び出しによって返されたJSONから空の応答を解析しようとするときはいつでも、予期しない入力エラーの終わりもまた上がることができます.
このような場合、返されるデータを使用する前に、データが実際に返されるかどうかを条件チェックを追加します.
たとえば、jQueryで次のAjax呼び出しを考えます.
以前に述べたように、JavaScriptでの「捕捉されていないシンタックスエラー:予期しない入力終了」エラーは様々な理由から生じることがありますが、大多数の時間は、括弧、ブラケット、クォートを欠落させたり、空のjsonを解析したりするためです.しかし、そのような問題を発見し、回避する簡単な方法はJShintのようなバリデータを通してJavaScriptを実行することです.COM .WebPackを使用している場合は、ビルド時にJSLintingを構成することもできます.ビルドプロセスでは、ビルド時に警告やエラーが表示されます.この記事は役に立つでしょうか.コメントでお知らせください!
郵便Uncaught SyntaxError: Unexpected end of input – Causes And Fix! 初登場MoreOnFew .
そのような問題をデバッグする方法と、それらを引き起こすかもしれないことを見てみましょう.
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 .
Reference
この問題について(非捕捉構文エラー:予期しない入力の入力-原因と修正!), 我々は、より多くの情報をここで見つけました https://dev.to/moreonfew/uncaught-syntaxerror-unexpected-end-of-input-causes-and-fix-100jテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol