2016-09-19 20 views
-3

おそらく、JavaScriptを記述するのに最も怒っているのは、構文エラーを黙って崩壊させる方法です。特に、欠落している引用符や中括弧は、スクリプト全体を消去することができます。JavaScript:構文チェック

'use strict'window.onerrorの組み合わせで、多くのランタイムエラーが発生することはありません。

多くのコーディングIDEは、しばしばjshintなどのアドオンを使用して、ある種の構文チェックを提供します。

JavaScriptが独自の構文エラーを報告する方法はありますか?

また、ブラウザベースのJavaScriptを真にデバッグするための推奨IDEがあればうれしいです。

編集:

JavaScriptが明らかに明らかにそれに悲しみを引き起こす構文解析ステージと構文エラーを通過します。パーサー自身がエラーをキャッチ可能な方法で報告していますか?

ここではサードパーティリンターが使用されていることを認識していますが、JavaScript自体がヒントを提供しているかどうかは疑問でした。

+0

'JavaScriptで独自の構文エラーを報告する方法はありますか? 'どのような壮大なアイデアですか?それはとても良いことでした。私は時間をかけてそれを実装するために旅しましたが、以前は構文エラーが報告されていました。 – vlaz

+0

https://atom.io/を試して、linter-jshintを使用してlinterパッケージを追加してください。 – Mic

+0

@vlaz最も面白い。 JavaScriptには構文エラーを表す 'SyntaxError'オブジェクトがあります(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxErrorを参照)。サンプルは 'eval'を使用しています。間違いなく、巧妙なウィットはEvilと言います。ポイントは、これを捕らえる方法があるかもしれないということです。私はそれが多くのコンソールが適用する技術だと思っています。 – Manngo

答えて

2

最新のブラウザでは、JavaScriptが構文エラーを「黙って崩壊」しません(これは古いブラウザでさえも)。開発ツール(MacではCtrl + Shift + I、F12、またはCmd + Shift + I)を開き、コンソールを見てください。通常、関連するコード行に直接リンクする構文エラーが表示されます。これらの同じ開発ツールは、完全機能を備えたデバッガも提供します。

JavaScriptは明らかに構文解析の段階を経て、構文エラーが発生して明らかに悲しみを引き起こします。パーサー自身がエラーをキャッチ可能な方法で報告していますか?パーサはあなたのコードを実行されていない環境になりますその呼び出し元に

はい  —。仕様に従って、無効なコードを解析するとSyntaxErrorになります。そのエラーをあなたに報告するのはその環境に依存します。

+0

エラーを取り除く環境でJavaScriptを実行する場合を除き、JavaScriptは本当に暗黙に失敗します。私はKomodo Editを使用していますが、これはjsHintを使用してこれらを検索しますが、基本的なエラーを見つけることと同じではありません。今日のブラウザは良い仕事をしています。私はそれらを日常的に使用していますが、コーディング環境はほとんどありません。明確化のため、上記の私の編集を参照してください。 – Manngo

+0

@マンゴー:尊敬の念はしていますが、そうではありません。構文エラーでスクリプトコードを評価すると、仕様ごとに「SyntaxError」が発生します。そのエラーを報告するのは環境に依存します。 –

+0

OK、私はあなたのことを知っています。パーザはエラーを報告しますが、コーディング環境はそれを渡すかどうかは関係ありません。ブラウザは開発ツールで行います。そうだろうか? – Manngo