Jshint.com提供错误:
第36行:var signin_found; 缺少"使用严格"声明.
考虑这个简单的代码:
"use strict";
var obj = {
f: function() {
this.prop = 'value';
g.bind( this )();
}
};
function g() {
console.log( this.prop );
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试验证此代码,jshint会Possible strict violation.在我调用时给出错误console.log( this.prop );.这是因为this在函数中严格模式下未定义.
但是我在调用它之前绑定了这个函数,所以它this是正确的对象.
我正在使用这种"设计模式"来避免使主要对象混乱.传递参数中的属性也会使函数混乱,所以我拒绝这样做.此外,这正是bind为了什么.
有没有办法让JSHint让我这样做?
在我的项目中,我们有一些全局变量作为容器:
MyProject.MyFreature.someFunction = function() { ... }
Run Code Online (Sandbox Code Playgroud)
那么我在整个网站上使用该脚本,JSLint/JSHint抱怨:
"MyProject"未定义
我知道我可以访问每个JavaScript文件并在其/*global MyProject*/上添加注释.但我正在寻找一种方法来在某种配置文件中定义该注释,所以我不必逐个文件添加此注释.
选择中的某种选择config/jshint.yml会很好.
我正在使用原子,我已经尝试了几种不同的jshint包,它们都会发出警告
"template literal syntax' is only available in ES6 (use 'esversion: 6')"
Run Code Online (Sandbox Code Playgroud)
我创建了一个顶级.jshintrc文件(在root),并添加了以下json:
{
"esversion":6
}
Run Code Online (Sandbox Code Playgroud)
但是,它仍然会抛出同样的错误.任何想法如何解决.我已经包含了JSHint选项页面的链接.我想开始使用ES6语法,但不希望有额外的警告.
谢谢SO社区!
JShint和以下代码行有一些问题.
$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);
Run Code Online (Sandbox Code Playgroud)
我收到了错误,Identifier 'default_venue' is not in camel case.这通常不会成为问题,但我对变量名称没有任何控制权 - 它是通过JSON API引入的.
有没有办法可以为受影响的变量或它们出现的行抑制此问题?
如果之前有人问过这个道歉,我很确定它一定是,但我找不到解决办法.
我只是使用JSHint来绘制一些JavaScript代码.在代码中我有两个for循环,这两个使用如下:
for (var i = 0; i < somevalue; i++) { ... }
Run Code Online (Sandbox Code Playgroud)
因此,两个for循环都使用var i进行迭代.
现在JSHint向我展示了第二个for循环的错误:"'我'已经定义了".我不能说这不是真的(因为它显然是)但我一直认为这无关紧要因为var i仅用于那个特定的地方.
以这种方式使用for循环是不好的做法吗?我应该在我的代码中为每个for循环使用不同的变量
//for-loop 1
for (var i = 0; ...; i++) { ... }
//for-loop 2
for (var j = 0; ...; j++) { ... }
Run Code Online (Sandbox Code Playgroud)
或者这是我可以忽略的错误(因为它不会破坏我的代码,它仍然会做它应该做的事情)?
JSLint顺便说一下.停止在第一个for循环验证,因为我没有在函数的顶部定义var i(这就是我首先切换到JSHint的原因).所以根据这个问题的例子:我应该使用JSLint还是JSHint JavaScript验证? - 无论如何我应该使用像这样的for循环来确认JSLint:
...
var i;
...
//for-loop 1
for (i = 0; ...; i++) { ... }
...
//for-loop 2
for (i = 0; ...; i++) { ... }
Run Code Online (Sandbox Code Playgroud)
这对我来说也很好看,因为这样我应该避免JSLint和JSHint中的错误.但我不确定的是,我是否应该为每个for循环使用不同的变量,如下所示:
...
var i, …Run Code Online (Sandbox Code Playgroud) 我无法解决JSHint的错误消息.这是我正在使用的循环:
for (i = 0; i < Collection.length; i += 4) {
data.push({
items : Collection.slice(i, i + 4).map(function(item) {
return {
id: item[0],
title: item[1],
};
})
});
}
Run Code Online (Sandbox Code Playgroud) 是否有选项和/或如何抑制如下错误?
175,14:['tracker']最好用点符号书写.
嗨,当我的框架使用jshint验证我的javascript代码时,我遇到了麻烦.我故意使用了switch-case而没有break语句,但这部分代码在jshint检查时被捕获为错误.我的代码如下所示.
switch (<no>){
case 1:
// does something
case 2:
//does something more
default:
// does something even more
}
Run Code Online (Sandbox Code Playgroud)
Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'.
有关如何避免它的任何想法?或者在这种情况下使用切换案例是不好的做法?
我正在为Node.js编写一些代码,我目前正在使用JSHint检查我的代码.但是,当我使用该require函数导入模块时,它说:
'require'没有定义.
我怎么能抑制警告?
"use strict";
var express = require('express');
var register = require('./routes/register');
Run Code Online (Sandbox Code Playgroud) jshint ×10
javascript ×9
jslint ×2
atom-editor ×1
code-cleanup ×1
coding-style ×1
ecmascript-6 ×1
for-loop ×1
node.js ×1
properties ×1
require ×1
syntax ×1