在设置jshint选项时有困难
这是我的gruntfile.js
grunt.initConfig( {
jshint : {
options: {
curly: false,
asi: true,
eqeqeq: false,
maxparams: 5,
undef: false,
unused: false,
eqnull: true,
browser: true,
devel: true,
expr: true,
jquery: true ,
evil : true
},
files : {
src : [
'dev/*.js', 'dev/**/*.js' ,
'files-lib/*.js', 'files-lib/**/*.js' ]
},
},
仍然会有错误
71回传(this.optional(元素) && value=="") \x-re.test(值);^使用'===‘与'’进行比较。
谢谢你的帮助
发布于 2017-05-25 08:40:48
简短的回答:--在您的options
配置中没有其他可以做的事情来避免这种情况。
更长的答案:--尽管您在options
配置中将eqeqeq
属性设置为false
,(假定double equals ==
的实例不应引发错误),但在这个实例中,jshint
认为将此错误报告为错误是正确的。
正在验证的代码中的value==""
部分是抛出错误的部分(即它忽略了eqeqeq: false
选项)。这是有道理的!
在进行任何必要的类型转换之后,==
操作符将比较是否相等,这可能导致Javascript中非常奇怪的结果。例如:
0 == "" // true
false == "" // true
虽然我很欣赏double等于产生了许多比较场景的正确结果,但是这个value==""
示例肯定是一个使用三重等于的场景,或者如果您是双等于唯一的人,那么您可以用value.length == 0
替换value==""
关于三重等于和双等于运算符的其他信息,以及各种奇怪之处,可以在这个post的答案中找到
https://stackoverflow.com/questions/44172666
复制相似问题