HSG*_*HSG 4 javascript arrays object jshint
我正在使用 JSHint 来确保我的 JavaScript 是“严格的”,但出现以下错误:
期望赋值或函数调用,而是看到了一个表达式
在以下代码中:
var str = 'A=B|C=D'
var data = {};
var strArr = str.split( '|' );
for (var i = 0; i < strArr.length; i++) {
var a = strArr[i].split('=');
a[1] && (data[a[0].toLowerCase()] = a[1]); // Warning from JSHint
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么我会收到这样的错误或我如何编写代码来消除错误。
这是一个提供相同警告的简化版本:
var a, b;
a && (b = a);
Run Code Online (Sandbox Code Playgroud)
期望赋值或函数调用,而是看到了一个表达式
这意味着您有一个表达式,但没有将结果分配给任何变量。jshint 不关心实际表达式是什么或者有副作用。即使您在表达式内部分配了一些东西,您仍然忽略了表达式的结果。
如果您关心它,jslint 还有另一个错误:
意外的赋值表达式
这会警告您可能希望使用==而不是=内部逻辑表达式。这是一个常见的错误,因此不鼓励您在逻辑表达式中使用赋值(即使这正是您在这里想要的)。
基本上,jshint/jslint 不喜欢滥用逻辑运算符的快捷评估来代替 if 语句。它假设如果不使用表达式的结果,它可能不应该是一个表达式。
| 归档时间: |
|
| 查看次数: |
17438 次 |
| 最近记录: |