問題タブ [jslint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - IEを破るECMAScript/JavaScriptエラーを見つける
私は比較的巨大なECMAScriptコードベース(> 60,000 LOC)に取り組んでおり、恐ろしい友人であるInternet Explorer(特に6と7)のエラーの検出に少し苦労する傾向があります。
現時点では、RIAがGoogle Chrome、Firefox 3.6、Opera、Internet Explorer 8で正常にレンダリングされるという問題に3日間悩まされていますが、Internet Explorer 8をIE7モード(または実際のIE)で実行すると失敗します-7)。
私の質問は本当にです:IE7でエラーを生成するコードを特定するにはどうすればよいですか?
通常、私はJSLintに依存しており、通常の容疑者を捕まえる傾向があります(末尾のコンマ、嫌いです)が、この特定のケースでは、ソースと最小化の両方のすべてのコードでリンターを再実行しましたが、そうではありません私のいつもの容疑者を譲ります。だから私はIEが気に入らないものを誤って導入したと思います(誰が知っているので、どこかでdojo.mapの代わりにArray.mapを使用しましたか?)そしてそれは私の顔に爆発し、そうでない素晴らしいエラーメッセージを生成します私を助けてください(「[オブジェクトオブジェクト]」と「null」は本来あるべきではないので、上流でエラーが発生し、サイレントに失敗してこのオブジェクトを作成できなかったと思います)。
Google Closure Linterを試してみましたが、特別なことは何も得られず、GoogleClosureCompilerも私の救世主になるとは思いません。適切なエラーを取得できるように、IEをエミュレートしているかのようにコードを解析/実行できるツール(コマンドライン、Webサービスなど)はありますか?
ヒントをいただければ幸いです。
編集:これまでの私の問題を解決するためにあなたの助けをありがとう、しかし私が本当に求めているのは、特定のブラウザに対して機能セットと構文を検証することを意味する、この種のチェックを行うツールがあるかどうかです。これは、私の意見ではJSの世界にひどく欠けている種類のものです(FFやChromeの場合はそれほど多くはありませんが、明らかにデバッガーの方が少し便利です)。
EDIT2:2つのブランチ間のすべてのコード変更を調べ、問題は実際にはすでに存在しているが、以前は検出されなかったことに気づき、さらに古い変更を繰り返して絞り込んだことで、最終的に今日(3日後)に問題の根本を見つけました。混乱し、最終的には障害点に達するまでどこにでもコンソールログを追加することになります(すべての行にログを追加する正規表現のサポートについてemacsに感謝します...重いですが機能します...)。面白い事実:IEは、元々ソースの問題をキャッチしてから再スローするtrycatchブロックに表示されるはずのエラーメッセージを飲み込んだ。それでも理由はわかりませんが、そうでなければ、壊れた場合に備えてその目的のために意図されていたので、見つけるのははるかに簡単でした。変。深いレベルの再スローは好きではないかもしれません。
今のところ、実際の質問に対する答えはありませんので、質問は開いたままにしておきます。
javascript - JSLintが突然報告しています:「use strict」の関数形式を使用してください
私は声明を含めます:
私のJavascriptファイルのほとんどの先頭にあります。
JSLint は、これについて警告したことはありません。しかし今では、次のように言っています。
"use strict" の関数形式を使用します。
「関数形式」が何であるかを知っている人はいますか?
javascript - jslintはどのように機能しますか?
jslintはjavascriptの問題をどのようにチェックしますか?実際のJavaScriptパーサーはありますか?
macos - Textmateを使用したJSLint
このチュートリアル(http://www.phpied.com/jslint-on-mac-textmate/)の手順を試し、textmateを使用してjslintを実行しましたが、「ステップ1」の最後のステップでスタックしました。
エラーは次のとおりです。
スレッド「main」の例外java.lang.NoClassDefFoundError:org / mozilla / javascript / tools / shell / Main原因:java.lang.ClassNotFoundException:org.mozilla.javascript.tools.shell.Main at java.net.URLClassLoader $ 1 .run(URLClassLoader.java:202)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:307 )at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
ありがとう
jslint - セレクターで要素が見つかりませんでした: ".highlight"
jslint が私の悪いプログラミング プラクティスについて教えてくれたことに感謝しています。このコマンドを発行したときに表示される警告メッセージを取り除くにはどうすればよいですか:
class="highlight" の要素がない場合。
javascript - JSLint を C++ ライブラリとしてビルドできますか
C++ で記述しているスクリプト エディターで JavaScript の検証が必要です。
JSLint がソースを提供していることを認識しています。JSLint を C++ ライブラリとして構築し、exe を使用せずに API で使用できるようにすることは可能ですか。
そうでない場合、JavaScript を検証してエラーの詳細を提供する、他の同様のオープン ソース C++ ライブラリはありますか?
ありがとう。
参照: http://www.javascriptlint.com/docs/running_from_your_windows_program.htm
javascript - `new Object()` とオブジェクトリテラル表記の違いは何ですか?
オブジェクトを作成するためのこのコンストラクターベースの構文の違いは何ですか:
...そしてこのリテラル構文:
JSLint はオブジェクト リテラル表記を使用することを好みますが、どちらも同じことを行うようです。
どちらが優れているのか、その理由は?
javascript - JS Lint、Javascriptはどのようにセマンティックである必要がありますか?
したがって、JSLintは、セマンティクスと構文を促進する優れたツールです。クライアントのサイトからJSLintに取得するほとんどのJSは、きしむ音が鳴り、ほとんどのサイトの機能は引き続き機能しますが、通常は失敗します。私は彼らのJavascriptを修正することで彼らを売り込もうとしていますが、彼らはそれが壊れていないように見えます(つまり、彼らが望んでいることをしている)なぜそれを修正するのですか?セマンティクスと構文は、彼らにとって抽象的すぎます。
あなたの意見では、JSを使用するサイトはJS Lintコード標準に準拠する必要がありますか?JS Lintのセマンティクスと構文に準拠するための良い議論は何ですか?
javascript - JSLint (Javascript Validator Web サイト) - エラー! 暗黙のグローバル:
JSLint でカスタム ギャラリー スクリプトをテストしたところ、1 つを除いてすべてのエラーが解決されました。暗黙のグローバル エラー..これは本当にエラーですか? 無視してもいいですか、それともこのエラーを解決するために作業する必要がありますか..?
ご回答ありがとうございます。
これは何を意味するのでしょうか?ところで、私はJQueryライブラリを使用しています..多分それが問題です^^..
javascript - JSLintエラー:すべての'var'宣言を関数の先頭に移動します
JSLintサイトが更新され、JSスクリプトを確認できなくなりました。私にとって、この警告は重大ではありません。これを修正するために何千行も調べたくありません。もっと重大な問題を見つけたいと思います。
このエラーをオフにする方法、またはレガシーJSLintを使用する方法を知っている人はいますか?
アップデート
例:
jslint.comの出力:
問題:
関数の上に変数を置くことは新しい要件です。このエラーでスクリプトのスキャンを停止するため、JSLINTを使用してコードをテストすることはできません。
私はたくさんのコードを持っているので、この警告を重大なエラーとして脅したくありません。
更新2011年8月22日:http://jshint.comが見つかりました、 http : //jslint.com/よりもはるかに良く見えます