我正在使用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
      } 

为什么我会收到这样的错误或如何编写代码以消除错误的任何想法。

===============>>#1 票数:4 已采纳

这是给出相同警告的简化版本:

var a, b;
a && (b = a);

预期分配或函数调用,而是看到一个表达式

这意味着您有一个表达式,但不将结果分配给任何变量。 jshint不在乎实际的表达式是什么或是否有副作用。 即使您在表达式内部分配了某些内容,您仍然会忽略表达式的结果。

如果您关心它,jslint还有另一个错误:

意外的赋值表达式

这会警告您,您可能想在逻辑表达式中使用==代替= 这是一个常见错误,因此不建议您在逻辑表达式中使用赋值(即使这正是您想要的)。

基本上,jshint / jslint不喜欢滥用逻辑运算符的快捷方式评估来代替if语句。 它假定如果不使用表达式的结果,则它可能不应该是表达式。

===============>>#2 票数:0

http://jshint.com/docs/options/#expr-JSHINT说,Expr警告是放松选择的一部分。 因此,如果您编写/* jshint expr: true */ ,则不会发出警告。 但是,您也必须知道功能范围。 如果仅在所有内容上键入此行,它将在全局应用此规则。 因此,即使您在其他行上犯了错误,jshint也会忽略它。 因此,请确保您明智地使用它。 如果用于特定功能,请尝试使用(我的意思是仅在一个功能内)

  ask by HSG translate from so

未解决问题?本站智能推荐:

4回复

期望一个赋值或函数调用,而是看到一个表达式

我对这个JSLint错误非常感兴趣 。 我怎么能忍受呢? 它有标志或复选框吗? 当你做以下事情时,你会得到它: 而不是: 两者都做同样的事情。 如果你把: 无论如何,它缩小到最小化:
1回复

JShint:期望一个赋值或函数调用,而是看到一个表达式

我有这条线: 然后,JSHint显示以下消息: 我是Angular JS和JSHint的新手,那么该怎么办才能解决此问题?
1回复

期望一个赋值或函数调用,而是看到一个表达式。 (W030)

我知道有很多类似的问题,我读了其中一些。 我什至再次重读了三进制运算符的MDN ,但我仍然不明白为什么JSHint为我显示了以下代码的上述错误: 我更喜欢没有错误的代码,因此,如果可能的话,我希望对此代码采取另一种简洁的做法。 我不喜欢使用/* jshint -W030 */注释代码
4回复

期望一个赋值或函数调用,而是看到了一个带有JavaScript的表达式

我正在使用此JavaScript,无法将其显示为HTML。 我在控制台中看到了它,但在页面上看到的只是我的名字。 创建一个名为“ me”的对象,该对象用您的姓名,城市和职务来描述您。
2回复

禁用JSHint警告:期望分配或函数调用,而是看到一个表达式[重复]

这个问题在这里已有答案: 期望一个赋值或函数调用,而是看到一个表达式 4答案 为什么jshint不能将赋值识别为表达式? 8个答案 我有以下几行: 对于这一行,JSHint抱怨: 我理解警告,但我想禁用它。 我找不到怎么做的方法。 任
2回复

JsHint:“期望分配或函数调用,而是看到一个表达式”,Switch语句

考虑以下代码和输出: 输出: 我收到JsHint的抱怨说 代表第4、7、10和13行。也就是每个包含“ &&”的行。 我设法通过使用Switch语句中的函数来对此进行转义,例如: 等等 我想知道为什么JsHint发出此警告,以及是否有更好的
5回复

JSHint - 期望一个条件表达式,而是看到一个赋值

我很清楚类似的问题,但我仍然无法解决我的问题。 所以,我的代码看起来像这样: JSHint在char 39中返回错误,所以用; 在formErrors[i]之后formErrors[i] 。 我能做什么?
1回复

警告带有主干的JSHint:预期分配或函数调用,而是看到一个表达式

在我所有的JS文件上,我都有JSHint警告:预期分配或函数调用,而是看到了一个表达式。 一个例子: 在http://www.jshint.com/上,我有: 四个警告17需要一个赋值或函数调用,而是看到一个表达式。 20需要一个赋值或函数调用,而是看到一个表达式。 24
1回复

JSHint错误:预期分配或函数调用,而是看到一个表达式

当我在这里使用JSHint时,出现错误。 怎么处理呢? 我的js:
1回复

期望一个赋值或函数调用,而是看到一个表达式

我正在使用JSLint来确保我的JavaScript是“严格的”并且我收到以下错误:期望一个赋值或函数调用而是看到一个表达式 在以下代码中: if(index>0){ shakStaute===1; } if(index>0){ shakStaute===1; }