web-dev-qa-db-ja.com

JSLint:定義される前に使用されていた

こんにちは3つのjavascriptファイルがあります。

  • jquery.js
  • utility.js
  • file1.js

File1.jsには

jQuery.noConflict()
jQuery(document).ready(function($) { 
 // ....
});

定義される前に「jQuery」が使用されましたというエラーが表示されます。そして、定義される前に「ドキュメント」が使用されました。

この警告を安全に取り除くにはどうすればよいですか。

私が行った場合

var document = document || {}; 

それから、utility.jsを使用する場合、IEではnullになり、firefoxではOKになります。

これに対する最善の解決策は何ですか?

95
Chun ping Wang

ドキュメント から

JSLintは、このファイルで使用される変数が他のファイルで定義されていることをJSLintに示すことができる/ * global * /ディレクティブも認識します。コメントには、名前のコンマ区切りリストを含めることができます。オプションで、各名前の後にコロンとtrueまたはfalseを続けることができます。trueは変数がこのファイルによって割り当てられることを示し、falseは割り当てが許可されないことを示します(デフォルト)。このディレクティブは関数スコープを尊重します。

一部のグローバルは事前定義できます。 documentやaddEventListenerなど、Webブラウザーによって提供される標準のグローバルプロパティを事前定義するには、ブラウザー(ブラウザー)を想定するオプションを選択します。

例:

/*jslint browser: true*/
/*global $, jQuery*/
169
Quentin

Quentinが言うように、/*global*/ディレクティブがあります。

次に例を示します(これをファイルの先頭に置きます)。

/*global var1,var2,var3,var4,var5*/

最初のグローバルステートメントが/*と同じ行にあることを確認してください。そうでない場合は破損します。

31
stanton