首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript:错误-“期望一个赋值或函数调用,但却看到一个表达式”?

JavaScript:错误-“期望一个赋值或函数调用,但却看到一个表达式”?
EN

Stack Overflow用户
提问于 2010-11-13 00:58:35
回答 4查看 18.6K关注 0票数 16

我使用JSLint来确保我的JavaScript是“严格的”,并且我得到了以下错误:

需要一个赋值或函数调用,但却看到了一个表达式

在以下代码中:

代码语言:javascript
运行
复制
(my_var > 0 ) ? $("#abc").html(my_array.join('')) : $("#abc").html('<h2>Hello ' + persons_name);

你知道为什么我会收到这样的错误吗?此外,我还使用了上面代码中所示的jQuery,以防有什么不同。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-13 01:07:46

我的猜测是JSLint不满意,因为您使用的是三元运算符,而您没有对值做任何操作。将其重构为等效项:

代码语言:javascript
运行
复制
if (my_var > 0 ) {
  $("#abc").html(my_array.join(''));
} else {
  $("#abc").html('<h2>Hello ' + persons_name);
}

可以消除错误。如果出于某种原因,你真的喜欢使用三元运算符,那么使用它的“正确”方式应该是:

代码语言:javascript
运行
复制
$("#abc").html((my_var > 0) ? my_array.join('') : '<h2>Hello ' + persons_name);
票数 14
EN

Stack Overflow用户

发布于 2010-11-13 01:04:08

我相信这是因为三元运算符计算表达式并返回一个预期赋值的值。例如:

代码语言:javascript
运行
复制
var test = (my_var > 0) ? true : false;

但是,您可以像使用常规的if/then/else语句一样使用它。虽然三元运算符确实执行if/then/else,但它传统上用于赋值。

编辑:作为附录:这句话对你有意义吗?

代码语言:javascript
运行
复制
var foo = 1;
(my_var > 0) ? true : false;
console.log('hello world');
票数 8
EN

Stack Overflow用户

发布于 2010-11-13 01:04:58

您在一行中使用了一个表达式(准确地说,是一个使用三元运算符的表达式):您的行由一个表达式唯一地组成。

在许多语言中,这被认为是糟糕的编程实践,可以使用if语句重写,以使这一行更清晰。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4167113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档