jslint给出的是一个字符串,而看到的是{a}
jslint giving expected a string and instead saw {a}
我有下面的代码片段,看起来是正确的,但jslint不喜欢它。
var VALID_TYPE = {
"stringType" : "string",
"arrayType" : "array",
"objectType" : "object"
},
DEFAULT_FIRST = 1, DEFAULT_LAST = 1, PRIMITIVE_TYPE = {
"stringType" : "string",
"arrayType" : "array",
"objectType" : "object",
"undefinedType" : "undefined",
"booleanType" : "boolean",
"numberType" : "number"
};
VALID_TYPE.toString = function () {
var types = [], currentType;
for (currentType in this) {
if (typeof this[currentType] === PRIMITIVE_TYPE.stringType) {
types.push(this[currentType]);
}
}
var outputString = types.join(', ');
return outputString;
};
错误的行是这样的,在"."处:if(TYPE of this[currentType]==PRIMITIVE_TYPE.stringType){
错误的确切文本为:应为字符串,但看到的却是"."。
toString()按预期执行。除了将表达式的右侧放入另一个变量之外,我看不出应该更改什么来避免错误。jslinerrors.com上尚未描述该错误。
正如@SLaks在注释中所述,当JSLint遇到一个比较运算符时,其中一个操作数是typeof
表达式,而另一个操作数非字符串文字,它将发出警告。
以下是执行此检查的代码的精简版本:
function relation(s, eqeq) {
var x = infix(s, 100, function (left, that) {
// ...
if (are_similar(left, right) ||
((left.id === '(string)' || left.id === '(number)') &&
(right.id === '(string)' || right.id === '(number)'))) {
that.warn('weird_relation');
} else if (left.id === 'typeof') {
if (right.id !== '(string)') {
right.warn("expected_string_a", artifact(right));
} else if (right.string === 'undefined' || right.string === 'null') {
left.warn("unexpected_typeof_a", right.string);
}
} else if (right.id === 'typeof') {
if (left.id !== '(string)') {
left.warn("expected_string_a", artifact(left));
} else if (left.string === 'undefined' || left.string === 'null') {
right.warn("unexpected_typeof_a", left.string);
}
}
// ...
});
// ...
}
唯一一次发出特定警告是当JSLint遇到未引用的JSON属性时:
{
a: 1
}
我会把它挂起来的http://jslinterrors.com只要我有机会。
toString()按预期执行。
这个代码是完全有效的,所以是的。
请记住,jsLint不是在查找错误;它在寻找它认为不好的做法。
但这些事情并不总是在每种情况下都是绝对错误的;通常它有一个合法的用例,如果你有其中一个用例,那么你仍然会得到错误,但只能忽略它
Lint错误应该被视为一种指导,而不是严格遵守并导致构建失败。
您可能还想考虑使用jsHint而不是jsLint。jsHint是基于jsLint的,但对于它所抱怨的内容往往更为务实。
希望能有所帮助。
相关文章:
- jslint-vim configuration
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 本地存储中的字符串到字节数组转换
- JSLint字符串比较错误应为'==='而是看到'=='
- jslint给出的是一个字符串,而看到的是{a}
- JSLint 批准的创建长字符串的方法是什么?