web-dev-qa-db-ja.com

Jslintを使用して「ドキュメントが定義される前に使用されていました」を修正する方法

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

「ドキュメント」は、定義される前に使用されました。

エラーの原因となる行:

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

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

どうすれば解決できますか?

ありがとう。

26
starjava

場所

/*jslint browser:true */

関数の本体の始めに。または、代わりに、

/*global document: false */

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

47
penartur

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

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

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

または、starjavaの場合:

/\*global document\*/

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

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

2
stanton

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

/ * node JSLint: true * /

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

0
AURIGADL

すべてのJSコードがブラウザーから実行されることになっている場合は、--browser 国旗。

jslint --browser my.js
0
Kolyunya

CLIモードでは、構成ファイルを使用できます。
jslint.conf

{
    "predef": [
        "module",
        "require",
        "window",
        "document",
        "jQuery",
        "Backbone",
        "Marionette",
        "Modernizr",
        "_",
        "setTimeout",
        "clearTimeout",
        "setInterval",
        "clearInterval"
    ],
    "evil":false,
    "indent":4,
    "vars":true,
    "passfail":false,
    "plusplus":false
}

また、--config jslint.confパラメータを指定してjslintを使用します。

0
M Rostami