草庐IT

javascript - 将 @author 的使用视为代码风格违规

目标:如果在项目的.js文件中的任何地方使用了@author标签,则发出警告。问题:jshint或其他静态代码检查工具可以提供帮助吗?如果没有,我有什么选择?描述:我完全同意Paul在Javadoc@authortaggoodpractices上的回答线程并将@author标记视为不必要的噪音。而且,在Python世界中,我看到人们检查标签的使用情况。例如,OpenstackStyleGuidelines明确声明不使用@author标签。他们开发了一套自定义flake8检查,其中包括:[H105]Don’tuseauthortags.现在,我正在尝试用JavaScript解决同样的问题

javascript - “变量”在定义之前被使用

我正在检查变量是否已定义,如果未明确定义,我将通过以下方式定义它:if(typeof(aVariable)=='undefined'){varaVariable=value;}因为变量没有定义JSLint在定义之前警告它被使用,而这正是我想要的。我怎样才能克服这个问题?我想启用显式定义这些变量:varaVariable=value;所以每个打算包含这个脚本的人都可以自定义一些属性。恐怕我无法更改此逻辑,因为它已经以这种方式在数百个网站中使用。向下滚动查看答案/解决方案,因为我已经回答了我自己的问题StackOverflow没有显示出来。千万不要错过。 最佳答

javascript - 函数在定义之前被使用 - JSLint

JSLint不喜欢这段代码说“‘b’在定义之前就被使用了”vara=function(){b();},b=function(){alert("Hello,world!");};a();但对此非常满意vara,b;a=function(){b();};b=function(){alert("Hello,world!");};a();但我没有在我的第二个代码片段中定义任何东西。我只是声明变量b。那么为什么JSLint这样做呢?有没有理由我应该首先声明我的所有功能?PS我知道我可以改变a和b的顺序,但在实际项目中我的函数是事件处理程序,有时它们会相互调用,所以这可能是不可能的。

javascript - 意外的标记运算符 «=»,预期的 punc «,»

我收到以下错误Parseerror:Unexpectedtokenoperator«=»,expectedpunc«,»Line159,column26这是我的代码functionfitBounds(type="all",shape=null){varbounds=newgoogle.maps.LatLngBounds();if(type=="all"){if((circles.length>0)|(polygons.length>0)){$.each(circles,function(index,circle){bounds.union(circle.getBounds());});

javascript - JSLint 和书签

我正在使用jslintant.js在Rhino中运行JSLint检查。我发现了一些奇怪的东西,想知道我是否可以从其他程序员那里得到一些意见。基本上,以下行会出现JSLint'ScriptURL'错误:vara='DragmetoyourToolbar';错误:Lintatline124character35:ScriptURL.我已经研究了DouglasCrockford在fulljslint.js中编写的代码发现他确实是这样测试的://javascripturljx=/(?:javascript|jscript|ecmascript|vbscript|mocha|livescript

javascript - 如何修复 jslint 消息不安全 '.'

jslint报告消息Insecure'.'。在线html=/([\s\S]*)/.exec(responseText);如何解决这个问题?更新在body之后和右括号之前可能有属性所以\s?不能使用。Javascript在浏览器中运行,使用jQuery。从字符串而不是这个中提取正文元素内容的最佳方法是什么? 最佳答案 您可以将regexp:true添加到jsLint选项。只需在您的javascript文件中添加一行,例如:/*jslintindent:4,maxerr:50,vars:true,regexp:true,sloppy:t

javascript - 放;在函数定义的末尾

为什么将;放在最佳实践中?在函数定义的末尾。例如vartony=function(){console.log("hellothere");};优于:vartony=function(){console.log("hellothere");} 最佳答案 TL;DR:如果没有分号,您的函数表达式可以变成立即调用的函数表达式,具体取决于它后面的代码。自动插入分号很痛苦。你不应该依赖它:vartony=function(){console.log("hellothere");//Hint:thisdoesn'tgetexecuted;};(

javascript - JSLint (命令行) : options?

我在跑JSLint的Rhinoversion从Ubuntu命令行像这样:$rhinojslint.jsmyScript.js虽然Web界面提供了各种选项,但我不知道如何通过命令行调用这些选项。我是否忽略了文档中的任何内容? 最佳答案 是的!你确实错过了。您可以在.js文件的顶部指定jslint的选项。参见thedocpage并阅读选项部分以获取示例。 关于javascript-JSLint(命令行):options?,我们在StackOverflow上找到一个类似的问题:

javascript - 为什么 JSLint 告诉我使用 "=== undefined"而不是 "typeof ... === ' undefined'”?

我编写了以下代码:showTitles=(typeofshowTitles!=='undefined')?showTitles:'Y';showSelectGroup=(typeofshowSelectGroup!=='undefined')?showSelectGroup:'Y';但是JSLint说:Warning3JSLint:Unexpected'typeof'.Use'==='tocomparedirectlywithundefined.我应该如何更改我的代码? 最佳答案 可能是通过使用showTitles=(showTit

javascript - jslint:为什么此代码会导致 "Strict violation"错误消息?

运行以下简单代码会导致“严重违规”。错误信息。我一直在尝试查找有关原因以及如何修复它的文档。任何输入将不胜感激。错误:Error:Problematline6character4:Strictviolation.}(this));示例代码:/*jslintbrowser:true,onevar:true,undef:true,nomen:true,eqeqeq:true,plusplus:true,bitwise:true,regexp:true,strict:true,newcap:true,immed:true*/"usestrict";(function(window){}(th