标签: jslint

JavaScript中使用"严格"做什么,背后的原因是什么?

最近,我通过Crockford的JSLint运行了一些我的JavaScript代码,它给出了以下错误:

第1行问题1:缺少"使用严格"声明.

做一些搜索,我意识到有些人会加入"use strict";他们的JavaScript代码.一旦我添加了语句,错误就会停止显示.不幸的是,谷歌没有透露这个字符串声明背后的历史.当然它必须与浏览器如何解释JavaScript有关,但我不知道效果会是什么.

那么它是"use strict";什么,它意味着什么,它是否仍然相关?

当前的任何浏览器都会响应"use strict";字符串还是将来使用?

javascript syntax jslint use-strict

7339
推荐指数
29
解决办法
105万
查看次数

JSLint突然报道:使用"use strict"的功能形式

我包括声明:

"use strict";
Run Code Online (Sandbox Code Playgroud)

在我的大多数Javascript文件的开头.

JSLint之前从未对此提出过警告.但现在是,说:

使用"use strict"的功能形式.

有谁知道"功能形式"会是什么?

javascript jslint

918
推荐指数
6
解决办法
27万
查看次数

JSLint说"缺少基数参数"; 我该怎么办?

我在这个JavaScript代码上运行了JSLint,它说:

第32行的问题字符30:缺少基数参数.

这是有问题的代码:

imageIndex = parseInt(id.substring(id.length - 1))-1;
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

javascript jslint radix

498
推荐指数
7
解决办法
25万
查看次数

如何在javascript中初始化数组的长度?

我在JavaScript中使用数组(包括w3schoolsdevguru)阅读的大多数教程都建议您可以使用var test = new Array(4);语法将整数传递给Array构造函数来初始化具有一定长度的数组.

在我的js文件中大量使用这种语法之后,我通过jsLint运行了一个文件,它吓坏了:

错误:第1行字符22处的问题:预期')'而是看到'4'.
var test = new Array(4);
第1行第23个问题:预期';' 而是看到')'.
var test = new Array(4);
第1行字符23处的问题:预期标识符而不是')'.

通过阅读jsLint对其行为的解释后,看起来jsLint并不真正喜欢new Array()语法,而是[]在声明数组时更喜欢.

所以我有几个问题.首先,为什么?我是否因使用new Array()语法而冒任何风险?是否存在我应该注意的浏览器不兼容性?第二,如果我切换到方括号语法,有没有办法声明一个数组并将其长度全部设置在一行,或者我必须做这样的事情:

var test = [];
test.length = 4;
Run Code Online (Sandbox Code Playgroud)

javascript arrays jslint

470
推荐指数
14
解决办法
60万
查看次数

我应该使用JSLint或JSHint JavaScript验证吗?

我目前正在验证我对JSLint的JavaScript并取得进展,它正在帮助我编写更好的JavaScript - 特别是在使用Jquery库时.

现在我所遇到JSHint,一个叉的JSLint.
所以我想知道很多JavaScript驱动的Web应用程序,这是更好或最适用的验证工具:

  • JSLint还是JSHint?

我想现在决定验证机制并继续前进,将其用于客户端验证.

和jshint和jslint之间的区别?请在单个javascript示例中解释.

链接:

  1. jshint - http://www.jshint.com/

  2. jslint - http://jslint.com/

javascript jslint jshint

449
推荐指数
7
解决办法
15万
查看次数

为什么要避免使用JavaScript中的递增("++")和递减(" - ")运算符?

jslint工具的一个提示是:

++和 -
已知++(增量)和 - (减量)运算符通过鼓励过多的诡计来导致错误的代码.它们仅次于故障架构,可以实现病毒和其他安全威胁.有一个plusplus选项禁止使用这些运算符.

我知道像PHP这样的PHP结构$foo[$bar++]可能很容易导致一个错误,但是我无法找到一个更好的方法来控制循环而不是一个while( a < 10 ) do { /* foo */ a++; }for (var i=0; i<10; i++) { /* foo */ }.

jslint是否突出显示它们是因为有些类似的语言缺少" ++"和" --"语法或者处理方式不同,还是有其他理由可以避免我可能会丢失的" ++"和" --"?

javascript syntax jslint prefix-operator postfix-operator

348
推荐指数
12
解决办法
32万
查看次数

如果我使用const,为什么JSHint会发出警告?

这是我使用const时得到的错误:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};
Run Code Online (Sandbox Code Playgroud)

代码工作正常只有JSHint每次都警告我.

javascript const jslint node.js jshint

286
推荐指数
10
解决办法
18万
查看次数

JSLint错误'for的主体应该包含在if语句中'是什么意思?

我在我的JavaScript文件中使用了JSLint.它抛出了错误:

for( ind in evtListeners ) {
Run Code Online (Sandbox Code Playgroud)

第41行的问题字符9:for的主体应该包含在if语句中,以过滤原型中不需要的属性.

这是什么意思?

javascript jslint

236
推荐指数
6
解决办法
10万
查看次数

`new Object()`和object literal notation有什么区别?

这个基于构造函数的语法创建对象有什么区别:

person = new Object()
Run Code Online (Sandbox Code Playgroud)

...和这个文字语法:

person = {
    property1 : "Hello"
};
Run Code Online (Sandbox Code Playgroud)

虽然JSLint更喜欢使用对象文字表示法,但它们似乎都做同样的事情.

哪一个更好,为什么?

javascript jslint object

190
推荐指数
8
解决办法
13万
查看次数

jslint中的"意外的++"错误

什么对于那么最好的做法是什么?

Jslint解释说它"增加了混乱".我真的不明白......

编辑:代码,按要求:

  var all,l,elements,e;
  all = inElement.getElementsByTagName('*');
  l = all.length;
  elements = [];
  for (e = 0; e < l; (e++))
  {
    if (findIn)
    {
        if (all[e].className.indexOf(className) > 0)
        {
            elements[elements.length] = all[e];
        }
    } else {
        if (all[e].className === className)
        {
            elements[elements.length] = all[e];
        }
    }
  }
Run Code Online (Sandbox Code Playgroud)

javascript jslint

146
推荐指数
6
解决办法
5万
查看次数