27

jsLintで次のエラーが発生します。

'document' は、定義される前に使用されました。

エラーの原因となる行:

document.cookie = name + "=" + value + expires + "; path=/";

これが起こる理由はわかりますが、コードを準拠させたいと思います。

これを解決するにはどうすればよいですか?

ありがとう。

4

5 に答える 5

50

場所

/*jslint browser:true */

関数の本体の先頭に。または、代わりに、使用することもできます

/*global document: false */

JSLintはJavaScriptコードのチェック用であり、documentグローバルオブジェクトはどこにも存在しないため、コードがブラウザーで実行されることを目的としており、documentグローバル変数が定義されていることをJSLintに手動で伝える必要があります。たとえば、サーバー側の JavaScript の場合、JSLint がこのエラーについて報告することが期待されます。

于 2012-05-27T07:57:56.420 に答える
2

jslint の Web サイトから、他の場所で宣言されていると想定される変数を設定できるようにする/ global / ディレクティブについて読むことができます。

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

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

または、starjava の場合:

/\*global document\*/

:trueまたはが必要かどうかは実際にはわかりませんが:false、サイトで読んだことから推奨されているようです。http://www.jslint.com/lint.html

最初のグローバル ステートメントが と同じ行にあることを確認してください'/\*'

于 2012-07-18T14:57:53.903 に答える
1

すべての JS コードをブラウザから実行する必要がある場合は、--browserフラグを追加するだけです。

jslint --browser my.js
于 2016-07-29T10:30:52.137 に答える
0

ノードを使用している場合は、次の行を追加できます

/ * node JSLint: true * /

スクリプトの開始時 http://jslinterrors.com/a-was-used-before-it-was-defined/

于 2013-01-24T03:00:15.937 に答える