3

次のコードがあります。

var $form = $modal.find('#main-form');
var $submitBt = $modal.find('.block-footer button:contains("Submit")');
var oSubmit = {
    $form: $form,
    $modal: $modal,
    action: $form.attr('data-action'),
    entity: $form.attr('data-entity'),
    href: $form.attr('data-href'),
    row: $link.attr('data-row'),
    $row: $('#row_' + $link.attr('data-row')),
    $submitBt: $submitBt
};

jslint を使用すると、次の 3 つのことがわかりました。

  1. 'use strict'ステートメントがありません。
  2. これを前の 'var' ステートメントと組み合わせます。<-これらの多く
  3. $row: $('#row_' + $link.attr('data-row'))- エラー: '$' は定義される前に使用されました。

これらのメッセージで通常行われていることについて、アドバイスをいただけないでしょうか。

4

4 に答える 4

7
  1. についてuse strictは、厳密モードをご覧ください。これはオプトイン機能であるため、エラーではありません。

  2. これは単に好みの問題です。JSLintはあなたが書くことを提案します:

    var foo, bar, baz;
    

    それ以外の

    var foo;
    var bar;
    var baz;
    
  3. これは、JSLintがjQuery(およびその「$」変数)を認識していないため、未定義の変数を使用していると見なすためです。/* global $ */JSファイルの先頭にを配置するか、ここにグローバル変数を事前定義$することを示すテキストを入力することができます(FabrícioMattéに感謝)


また、一般的なJSLintに関して:

JSLintは、優れたJavaScriptコードを作成するものに関する特定の人物(Douglas Crockford)の意見をテストします。Crockfordは非常に優れていますが、アンダースコアルールやインクリメント/デクリメント演算子の使用など、彼の意見のいくつかはせいぜい肛門性格です。

上記の出力でJSLintによってタグ付けされている問題の多くは、Crockfordがコードの保守を困難にすると感じている問題、またはCrockfordが過去に保守が困難な「巧妙な」ことを行うように導いたと感じている問題です。

ソース(foxxtrot)

于 2012-09-17T11:25:44.763 に答える
2

これらは単なるメッセージであり、エラーではありません。それらを簡単にオフにしたり、無視したりできます。

1) は「説明不足」というよりもヒントです。

2) はコード スタイルのヒントです。あなたは書くことができます:

var $form = …,
    $submitBt = …,
    oSubmit = …;

3) jQuery が異常に含まれているようです (再宣言しましたか?)、または jslint がグローバル変数を見逃していました。

于 2012-09-17T11:23:59.293 に答える
1

1) use strict: これにより、基本的により良い JavaScript を作成できます。JavaScript の「悪い」機能の一部を使用できなくなります。

2) 結合var: これについては心配しないでください。これは単なるスタイルの好みです。

3)$定義される前に使用されました:$存在しないことを知らせるだけです。これを jsLint グローバル変数に追加する必要があります。

これらのオプションを jsLint 内で無効にするには、JS ファイルの先頭にオプションを配置します。

/*jslint options */

詳細については、http: //www.jslint.com/lint.html を参照してください。

于 2012-09-17T11:28:38.167 に答える
0
  1. 関数の先頭に追加"use strict";します。
  2. var1 つのステートメントを使用して変数を宣言します:var foo = b, bar = dなど。
  3. ファイルの先頭に追加/*global $: false */します。これにより、スクリプトが使用できる $ というグローバル変数が存在することが JSLint に通知されます。
于 2012-09-17T11:25:01.307 に答える