我有以下代码:
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时,它告诉了我三件事:
'use strict'
声明。<-
其中许多$row: $('#row_' + $link.attr('data-row'))
- 错误:在定义之前使用了'$'。有人可以就这些消息的正常做法给我一些建议。
答案 0 :(得分:6)
关于use strict
,请查看strict mode。这是一个选择加入功能,因此不是错误。
这只是品味问题。 JSLint建议你写:
var foo, bar, baz;
而不是
var foo;
var bar;
var baz;
这是因为JSLint不了解jQuery(及其“$”变量),因此它认为您使用的是未定义的变量。您可以将/* global $ */
放在JS文件的顶部,或在{strong>预定义全局变量的文本中键入$
(感谢FabrícioMatté)
另外,关于JSLint一般:
JSLint测试了一个特定的人(Douglas Crockford)关于什么是好的JavaScript代码的意见。 Crockford非常好,但他的一些观点充其量只是肛门保留,如下划线规则,或使用增量/减量运算符。
上面输出中由JSLint标记的许多问题都是Crockford认为导致难以维护代码的问题,或者他认为这些问题导致他过去做了“聪明”的事情,这些事情很难维持。
答案 1 :(得分:2)
它们只是消息,而不是错误。您可以轻松地将它们关闭和/或忽略它们。
1)更多的是小费而不是“缺失的陈述”。
2)是代码样式提示。你可以写:
var $form = …,
$submitBt = …,
oSubmit = …;
3)看起来像jQuery的一个不寻常的包含(你重新声明了吗?),或者jslint错过了全局变量。
答案 2 :(得分:1)
1)use strict
:这基本上可以让你编写更好的JavaScript。它会阻止您使用JavaScript中的一些“坏”功能。
2)结合var
:不要担心这个,这只是一种风格偏好。
3)$
在定义之前使用过:它只是告诉你$
不存在。您必须将其添加到jsLint全局变量。
您可以通过将选项放在JS文件的开头来禁用jsLint中的任何这些选项:
/*jslint options */
的更多信息
答案 3 :(得分:0)
"use strict";
添加到函数的开头。var
语句声明变量:var foo = b, bar = d
等。/*global $: false */
添加到文件的开头。这将告诉JSLint存在一个名为$的全局变量,脚本可以使用该变量。