3

I have the following code:

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
};

When I used jslint it told me three things:

  1. Missing 'use strict' statement.
  2. Combine this with the previous 'var' statement. <- many of these
  3. $row: $('#row_' + $link.attr('data-row')) - error: '$' was used before it was defined.

Can someone give me some advice on what's normal practice with these messages.

4

4 回答 4

7
  1. 关于use strict,看看严格模式。这是一个选择加入的功能,所以它不是错误。

  2. 这只是口味问题。JSLint 建议您编写:

    var foo, bar, baz;
    

    代替

    var foo;
    var bar;
    var baz;
    
  3. 这是因为 JSLint 不了解 jQuery(及其“$”变量),因此它认为您正在使用未定义的变量。您可以/* global $ */在 JS 文件的顶部放置 a,或者在此处输入$预定义全局变量的文本(感谢 Fabrício Matté)


此外,关于 JSLint 的一般情况:

JSLint 测试一个特定的人(Douglas Crockford)关于什么是好的 JavaScript 代码的意见。Crockford 非常好,但他的一些观点充其量只是保留性,比如下划线规则,或者使用递增/递减运算符。

JSLint 在上述输出中标记的许多问题是 Crockford 认为导致难以维护代码的问题,或者是他认为过去导致他做出难以维护的“聪明”事情的事情。

来源(狐步)

于 2012-09-17T11:25:44.763 回答
2

They are just messages, not errors. You can easily switch them off and/or ignore them.

1) is more a tip than a "missing statement".

2) is a code style hint. You may write:

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

3) seems like a unusual inclusion of jQuery (did you redeclare it?), or that jslint missed the global variable.

于 2012-09-17T11:23:59.293 回答
1

1) use strict:这基本上可以让你写出更好的 JavaScript。它可以防止您使用 JavaScript 中的一些“坏”功能。

2)组合var:不要担心这个,这只是一种风格偏好。

3)$在定义之前使用:它只是通知您$不存在。您必须将其添加到 jsLint 全局变量中。

您可以通过将选项放在 JS 文件的开头来禁用 jsLint 中的任何这些选项:

/*jslint options */

更多信息请访问http://www.jslint.com/lint.html

于 2012-09-17T11:28:38.167 回答
0
  1. Add "use strict"; to the start to the function.
  2. Declare the variables using one var statement: var foo = b, bar = d, etc.
  3. Add /*global $: false */ to the start of the file. This will tell JSLint that there exists a global variable called $ which the script can use.
于 2012-09-17T11:25:01.307 回答