問題タブ [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 - 「変数」は、定義される前に使用されました
変数が定義されているかどうかを確認しています。明示的に定義されていない場合は、次のようにして定義します。
変数が定義されていないため、JSLint は、変数が定義される前に使用されていることを警告します。これはまさに私が望んでいることです。
どうすればこれを克服できますか?
これらの変数を明示的に定義できるようにしたい:
したがって、このスクリプトを含める予定のすべてのユーザーは、プロパティの一部をカスタマイズできます。残念ながら、このロジックは既に何百もの Web サイトでこのように使用されているため、変更することはできません。
私は自分の質問に答えたので、下にスクロールして回答/解決策を見つけます。スタックオーバーフローには表示されません。それらを見逃さないようにしてください。
javascript - jslint ignore 予期される '{' エラー
Expected '{' and instead saw 'blah'
jslint を使用してスクリプトを実行すると、多くのエラーが吐き出されます。このエラーを無視するオプションはありますか?
vim - vim+jslint でクイックフィックス ウィンドウを使用する
ここで説明されているvim + jslintコンボを使用していますが、2つを一緒に使用する方法を理解するのに問題があります。エラーのリストは上半分に表示され、後半には実際のページが表示されるはずだと思いますか? もしそうなら、どうすればこれを行うことができますか?(注意、私はクイックフィックスウィンドウにまったく慣れていないため、ドキュメントはその使用方法を説明するのに最適ではありません).
javascript - JSLintを満たすには、JavaScriptの「名前空間」をどのように定義すればよいですか?
他のライブラリとの名前の競合を防ぐために、JavaScript コードを「名前空間」にパッケージ化できるようにしたいと考えています。名前空間の宣言は単純なコードである必要があるため、この機能を提供するために外部ライブラリに依存したくありません。これを簡単に行う方法についてさまざまなアドバイスを見つけましたが、 JSLintを (「The Good Parts」オプションを使用して)実行したときにエラーが発生しないように見えるものはありません。
例として、高度な JavaScript (YUI を使用しない名前空間のセクション)からこれを試しました。
これをJSLintで実行すると、次のエラーが発生します。
「暗黙のグローバル」エラーは、明示的に宣言することで修正できますMyNamespace
...
...その他の 2 つのエラーは、変数を if ブロックの外で宣言することで修正できます。
それでうまくいきますが、(MyNamespace
チェックされた時点で常に未定義になるので)それははるかに単純なものと同等です:
JSLintはこれで満足していますが、名前空間として正しく機能しなくなるほどコードを単純化したことを懸念しています。この最終的な定式化は理にかなっていますか?
javascript - JSLintがこのコード行で「badescapement」を返すのはなぜですか?
JSLintが次のJavaScript行に「Badescapement」を返すのはなぜですか?
JSLintのドキュメントから、正規表現リテラルの前に括弧が付いているので、これで問題ないと思いました。
正規表現は、簡潔でわかりにくい表記で記述されています。JSLintは、移植性の問題を引き起こす可能性のある問題を探します。また、明示的なエスケープメントを推奨することにより、視覚的なあいまいさを解決しようとします。
正規表現リテラルのJavaScriptの構文は、/文字をオーバーロードします。あいまいさを避けるために、JSLintは、正規表現リテラルの前にある文字が(または=または:または、文字であると想定しています。
javascript - JSLint の「disallow insecure in regex」オプションの目的
JSLint を実行すると、次のエラーが発生するコード行があります。
このエラーは、JSLint のオプション ページの次の説明を参照しているようです。
クライアント側のJavaScriptアプリケーションが実際に安全であると見なされる方法がよくわかりません。最も気密性の高い正規表現を使用しても、firebug などを起動して変数を変更することは可能です。実際の入力の検証はサーバー上で行う必要があり、クライアント ブラウザーはおそらく、平均的なユーザーの悪用を処理する検証に固執する必要があります。
このエラーを無視しても安全ですか? クライアント側の入力検証が原因でアプリケーションが安全でなくなるという角度が欠けていますか?
javascript - JavaScript でキーワード「new」にはどのような副作用がありますか?
jQuery のプラグインに取り組んでいますが、次のJSLintエラーが発生します。
この JSLint エラーや副作用に関する情報を見つけることができませんでしたnew
。
「副作用に「new」を使用しないでください」についてグーグルを試しました。そして0件の結果が得られました。Bingingでは 2 つの結果が得られますが、どちらも JSLint ソースを参照しているだけです。うまくいけば、この質問はそれを変えます。:-)
更新#1: コンテキストのソースは次のとおりです。
更新 #2: Starter jQuery プラグイン ジェネレーターをプラグインのテンプレートとして 使用しました。これにはそのコードが含まれています。
javascript - 「定義前に使用される」JS と Titanium Developer との競合
「定義される前に使用された」エラーを除いて、JSLint を渡す長い JavaScript ファイルがあります。
次のように、通常の関数宣言を使用しました...
とは対照的に...
以前の投稿に対するスティーブ・ハリソンの返信と一致しています...
すべての関数を function キーワードで宣言すると仮定すると、プログラミング スタイルの問題になると思います。個人的には、論理的に見えるように関数を構成し、コードをできるだけ読みやすくすることを好みます。たとえば、あなたと同じように、init 関数を一番上に置きます。ここからすべてが始まるからです。
... 関数を自分にとって意味のある順序で見るのが好きです。
このスクリプトは、テストされたいくつかのブラウザー (例: FireFox、Safari、Mobile Safari、Fennec、IE、Chrome、Midori など) で完全に機能します。
ここに問題があります。Titanium でビルドされた iPhone アプリ内でスクリプトを使用したいのですが、そのコンパイラは「used before defined」エラーで停止します。
どうすればこれを回避できますか?
これはばかげた質問かもしれませんが...関数を特定の順序で呼び出す必要がある場合、呼び出された関数が最初に呼び出した関数にコールバックする必要があるという問題をどのように解決しますか? 例えば...
関数を順番に宣言する必要がある場合は、function screen1
を先行させる必要がありfunction buildMenu
ます。しかし、特定の条件下で screen1 をビルドできず、メニューを再表示したい場合 (つまり、技術的にまだ宣言されていない関数を呼び出す場合) はどうでしょうか。
そうそう... もう 1 つの質問: プログラマーが手動で行うのではなく、関数を自動的に並べ替える Web サイトまたはプログラムはありますか?
jslint - JSLintメッセージ:「<\の代わりに<\ /を期待しています」-そのエラーの理由は何ですか?
JSLintを使用してコードを検証していましたが、次のエラーが発生しました。
"<\"の代わりに</を期待しています
HTMLコードとJavaScriptコードでそれを取得しました。例えば:
と:
なぜこれが起こっているのか誰か教えてもらえますか?
javascript - JSLint-非効率的な添え字を許容しますか?
JSlintオプションのドキュメントを読んで、利用可能な各オプションを理解していますが、よく理解していないオプションに出くわし、他の場所でそれに関する有用な情報を見つけることができません。
sub-非効率的な添え字を許容する
ドット表記でより適切に表現される式に下付き表記を使用できる場合はtrue 。
これが何を意味するのかについて、誰かがもっと光を当てることができますか?
ありがとう