javascript - JavaScript: 错误"Expected an assignment or function call and instead saw an expression"?

我使用jslint确保我的JavaScript是"strict",但是获得了以下错误:

Expected an assignment or function call and instead saw an expression

在下面的代码上:


(my_var > 0 ) ? $("#abc").html(my_array.join('')) : $("#abc").html('<h2>Hello ' + persons_name);

我为什么会得到这样一个错误?

时间:

我猜JSLint不工作是因为你使用三元运算符,而且还没有值,需要将其重构为等效的:


if (my_var > 0 ) {
 $("#abc").html(my_array.join(''));
} else {
 $("#abc").html('<h2>Hello ' + persons_name);
}


$("#abc").html((my_var > 0) ? my_array.join('') : '<h2>Hello ' + persons_name);

例如:


var test = (my_var > 0) ? true : false;

你应该像常规的if/then/else语句使用它,


var foo = 1;
(my_var > 0) ? true : false;
console.log('hello world');

你使用的是表达式( 表达式使用三元运算符确切地说) 在一行中: 线路由唯一的表达式。

这都被视为缺乏编程实践在许多语言,并且可以重写使用 if语句来渲染这一行更清楚。

刚问过相同的Q 时没有找到这个的不知道怎么搞的。

三元会返回一个值,该值未被使用,因此你正在滥用三元结构通过不使用值( 即使函数调用正在按预期进行) 。

...