我有一个三元运算符dir === 'next' ? ++$currentSlide : --$currentSlide;
在我的JS中用于增加或减少一个整数。当我在grunt JSHint中运行我的脚本时,这行代码会被标记为Expected an assignment or function call and instead saw an expression.
有人能给我建议吗?我应该如何设置我的条件等等?
我有一个三元运算符dir === 'next' ? ++$currentSlide : --$currentSlide;
在我的JS中用于增加或减少一个整数。当我在grunt JSHint中运行我的脚本时,这行代码会被标记为Expected an assignment or function call and instead saw an expression.
有人能给我建议吗?我应该如何设置我的条件等等?
你误用了条件运算符作为一个if
语句,这就是为什么你会得到那个提示。代码中真正的工作是作为表达式副作用完成的,而表达式的结果被忽略了。
如果改成真正的if
语句,它应该是这样的:
if (dir === 'next') {
++$currentSlide;
} else {
--$currentSlide;
}
如果您将条件运算符用作实际表达式,则可以使用它:
$currentSlide += dir === 'next' ? 1 : -1;
如果您像这样写,它是否能通过?
$currentSlide = (dir === 'next' ? $currentSlide + 1 : $currentSlide - 1);
代码检查工具通常不喜欢使用增量/减量运算符,因为它们容易出现错误。
尝试使用这个语法:
$currentSlide = (dir === 'next' ? $currentSlide+1 : $currentSlide-1);
将三元运算符转换为if else条件语句
之前:
(pbook.id === book.id ? book.shelf = pbook.shelf : "none");
之后:
if(pbook.id === book.id){
return book.shelf = pbook.shelf
} else {
return "none"
};
++x;
不会收到相同的警告吗? - sje397$currentSlide += dir === 'next' || -1;
:-) - Bergi++x
,但更合理的 JSHint 不在乎。 - Rob W