SyntaxError 意外的标记,如果在函数内

SyntaxError Unexpected token if within a function

我目前正在学习 javascript(目前通过使用 Google 脚本),我觉得这是一个简单的错误,但我想不出解决它的办法。

如果我将 "var colour" 设置为颜色代码,则下面的代码有效。但是当我将它更改为 if 语句时,我遇到了问题。我尝试了多种不同的格式,但仍然遇到同样的问题...

对于信息,它只是从电子表格中获取几行,然后格式化所选行并将其显示给用户。

//Example of part of working code:
  if(Line.length == 0){
  var Line = lines 
  .slice(1)
  .filter(function(row) { return row[4] == e.message.text;})
  .map(function(row) {
    var colour = if(row[6]=1){return "#ff0000"};
    return '<b>' + row[3] + '</b> ('+ row[1] + ' or ' +row[2] + ')' + '\n' + '<font color=' + colour + '>Region: ' + row[6] + "</font>";
  });
  } 

statements and expressions有区别。

就像你可以把苹果放在篮子里但不能把篮子放在苹果里一样,你可以把表达式放在语句中而不是语句放在表达式中。

var colour = ... 是一个期望等号右侧的表达式的语句。您不能在此处放置 if 语句。您可以使用 conditional operator 来创建条件表达式:

var colour = row[6] == 1 ? "#ff0000" : "#000000";

或者你可以使用一个完整的if语句来执行两个变体赋值语句:

var colour;
if (row[6] == 1) {
  colour = "#ff0000";
} else {
  colour = "#000000";
}

另请注意,return #ff0000 会按字面意思返回 "#ff0000",而不是我假设您想要的带有颜色 #ff0000 的文本;另请注意,row[6] = 1 会将 分配给 1row[6],而不是比较它。