三元运算符在JSHint中显示错误 - 期望赋值或函数调用,而是看到一个表达式

sty*_*ler 10 javascript

dir === 'next' ? ++$currentSlide : --$currentSlide;我的JS中有一个三元运算符,用于递减递减整数.当我在grunt JSHint中运行我的脚本时,请将此行作为Expected an assignment or function call and instead saw an expression.

任何人都可以建议我在哪里出错吗?我应该以不同的方式设定我的病情吗?

Guf*_*ffa 17

您滥用条件运算符作为if语句,这就是您获取该注释的原因.代码中的实际工作是作为表达式的副作用完成的,并且忽略表达式的结果.

作为一个真实的if陈述,它将是:

if (dir === 'next') {
  ++$currentSlide;
} else {
  --$currentSlide;
}
Run Code Online (Sandbox Code Playgroud)

如果将其用作实际表达式,则可以使用条件运算符:

$currentSlide += dir === 'next' ? 1 : -1;
Run Code Online (Sandbox Code Playgroud)

  • *后者的颤抖*. (5认同)
  • @DaveNewton:`$ currentSlide + = dir ==='next'|| -1;`:-) (3认同)

lea*_*_19 7

通常,禁用"预期的赋值或函数调用,而是查看表达式".警告,你可以做/*jshint expr:true*/