Questions tagged «jslint»

JSLint是由著名的开发人员Douglas Crockford开发的JavaScript“代码质量”工具,该开发人员还负责JSON,JSMin,ADSafe和YUI的某些部分。JSLint与C的棉绒平行。

27
“严格使用”在JavaScript中有什么作用,其背后的原因是什么?
Наэтотвопросестьответына 堆栈溢出нарусском:Чтозначит “使用严格”? 最近,我通过Crockford的JSLint运行了一些JavaScript代码,它给出了以下错误: 第1行第1个字符处的问题:缺少“使用严格”语句。 通过搜索,我意识到有些人将"use strict";其代码添加到了JavaScript中。添加语句后,错误停止出现。不幸的是,谷歌没有透露此字符串语句背后的许多历史。当然,它一定与浏览器如何解释JavaScript有关,但是我不知道会有什么影响。 那么到底是"use strict";什么,它意味着什么,并且仍然有意义? 当前的浏览器是否响应该"use strict";字符串,或者该字符串可供将来使用?


18
如何在JavaScript中初始化数组的长度?
我阅读过的有关JavaScript数组的大多数教程(包括w3schools和devguru)都建议您可以通过使用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;

11
JSLint说“缺少基数参数”
我在此JavaScript代码上运行了JSLint,它说: 第32行的字符30处的问题:基数参数丢失。 这是有问题的代码: imageIndex = parseInt(id.substring(id.length - 1))-1; 怎么了
538 javascript  jslint  radix 

8
我应该使用JSLint还是JSHint JavaScript验证?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 11个月前关闭。 我目前正在针对JSLint验证我的JavaScript并取得进展,它正在帮助我编写更好的JavaScript,尤其是在使用Jquery库时。 现在我所遇到JSHint,一个叉的JSLint。 因此,我想知道对于Web应用程序来说,很大程度上是JavaScript驱动的,它是可用于以下工作的更好或最适用的验证工具: JSLint还是JSHint? 我现在想确定一种验证机制并继续前进,将其用于客户端验证。 和jshint和jslint之间的区别?请在单个javascript示例中说明。 链接: jshint - http://www.jshint.com/ jslint - http://jslint.com/

16
为什么要避免在JavaScript中使用递增(“ ++”)和递减(“-”)运算符?
jslint工具的提示之一是: ++和- 已知++(递增)和-(递减)运算符会通过鼓励过多的技巧而导致不良代码。在支持病毒和其他安全威胁方面,它们仅次于错误的体系结构。有一个plusplus选项禁止使用这些运算符。 我知道像这样的PHP构造$foo[$bar++]可能很容易导致一次错误的错误,但是我找不到比a while( a < 10 ) do { /* foo */ a++; }或更好的方法来控制循环for (var i=0; i<10; i++) { /* foo */ }。 jslint是否突出显示它们,是因为有些相似的语言缺少“ ++”和“ --”语法或以不同的方式处理它,还是有其他理由避免我可能会丢失“ ++”和“ --”?

17
如果我使用const,为什么JSHint会发出警告?
这是我在使用const时遇到的错误: <error line="2" column="1" severity="warning" message="'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" /> 我的代码如下所示: const Suites = { Spade: 1, Heart: 2, Diamond: 3, Club: 4 }; 只有JSHint每次都警告我,代码才能正常工作。



11
如何在JavaScript中将长正则表达式拆分为多行?
我有一个很长的正则表达式,我希望在JavaScript代码中将其分成多行,以根据JSLint规则将每行长度保持80个字符。我认为这对阅读更好。这是模式样本: var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

8
您如何使用vim的quickfix功能?
我是一个非常新的Vim用户,我发现它的学习曲线相当陡峭(至少对我而言)。我刚刚安装了这个用于JavaScriptLint错误检查的vim脚本,一旦保存缓冲区,该脚本就会在vim的quickfix窗口中显示错误。 但是,我不知道下一步该怎么做。如何滚动所有错误?如何关闭快速修复程序“窗口”?更改代码后,如何获取它以检查错误? 我看过vim quickfix文档,但是命令数量不胜枚举,我似乎找不到我想要的东西。任何帮助,将不胜感激。 附带问题:有什么方法可以让javascriptlint检查驻留在.html文件中的代码的js错误吗? 谢谢!
125 vim  jslint 

3
立即函数调用语法
有一个JSLint选项,实际上是The Good Parts之一,它“ [需要]减少立即调用的次数”,这意味着构造 (function () { // ... })(); 而是需要写成 (function () { // ... }()); 我的问题是-谁能解释为什么第二种形式可能会更好?它更具弹性吗?容易出错?与第一种形式相比,它有什么优势? 自问了这个问题之后,我开始理解在功能值和功能值之间形成清晰的视觉区别的重要性。考虑一下立即调用的结果在赋值表达式的右侧的情况: var someVar = (function () { // ... }()); 尽管从语法上讲,最外面的括号是不必要的,但是括号开头预先表明了所分配的值不是函数本身,而是函数被调用的结果。 这类似于Crockford关于构造函数的大写的建议-旨在作为查看源代码的任何人的视觉提示。

4
JavaScript函数顺序:为什么重要?
原始问题: 当我的JavaScript调用的功能在页面下方而不是对其进行调用时,JSHint会抱怨。但是,我的页面是用于游戏的,在下载完所有内容之前,不会调用任何函数。那么为什么订单功能出现在我的代码中很重要? 编辑:我想我可能已经找到了答案。 http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting 我在里面吟。看来我需要花另一天的时间才能重新排序六千行代码。使用javascript的学习曲线一点也不陡峭,但是非常糟糕。

4
为什么JSHINT抱怨这是一个严格的违反行为?
我认为这可能与使用此关键字并显示模块模式的严格违规行为重复 我有这个代码: function gotoPage(s){ if(s<=this.d&&s>0){this.g=s; this.page((s-1)*this.p.size);} } function pageChange(event, sorter) { var dd = event.currentTarget; gotoPage.call(sorter, dd[dd.selectedIndex].value); } JSHINT(JSLINT)在抱怨。它说“严格违反”。对于突出显示的行: 我Function.call()对实例的使用,然后再引用,是否有点不合适? 这被认为是不好的风格吗?

2
JSLint:在定义之前就已使用
嗨,我有3个javascript文件。 jquery.js Utility.js file1.js 在file1.js我有 jQuery.noConflict() jQuery(document).ready(function($) { // .... }); 在定义之前,我得到一个错误“ jQuery”。并且在定义之前使用了“文档”。 如何安全摆脱此警告。 如果我做 var document = document || {}; 然后在我的Utility.js中(如果使用的话)在IE中为null,在Firefox中为ok。 最好的解决方案是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.