【问题标题】:Error - Expected an assignment or function call and instead saw an expression错误 - 需要赋值或函数调用,但看到的是表达式
【发布时间】:2015-05-22 16:22:16
【问题描述】:

我在这个 for 循环中遇到 2 个错误。两者都给我错误:

预期的是赋值或函数调用,但看到的是表达式。

错误是因为下面标有“//Here”的两行:

var f="";

var printRange =function(rangeStart,rangeStop){
    for (var a3=rangeStart; rangeStop>=a3; a3++) 
        rangeStop >=a3 && (f+=a3+",");                   //Here
        a3==rangeStop && (f+=a3);                    //Here
        return f.substr(0,f.length-1);
};

ANSWER = printRange(28,47);

我不明白为什么它们不正确。我看不出我做错了什么。

【问题讨论】:

  • @rageandqq 哈哈。我很惊讶这个编译,但我猜不是在所有浏览器中。
  • 您缺少一些 if 语句。您想要实现的目标也不是很清楚。最好先解释一下你想要达到的目标,然后说出问题出在哪里以及到目前为止你已经尝试过什么。
  • 附加建议:使用 ' 而不是 "。总是,真的总是为 if, for, ... 创建一个带有花括号的块。命名变量适当地赋予它们含义。使用空格和缩进格式化您的代码。使其更具可读性。阅读 Crockford 的“JavaScript,好的部分”。

标签: javascript jslint


【解决方案1】:

将条件放在 if 块中:

if (rangeStop >=a3) f += a3+",";  
if (a3==rangeStop) f += a3; 

另外,for 块缺少花括号,并且缩进不明确,所以我不确定你想要/期望什么。最好添加它们。

【讨论】:

    猜你喜欢
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2019-11-29
    • 1970-01-01
    • 2015-11-03
    • 2023-03-26
    相关资源
    最近更新 更多