首页 > 解决方案 > SyntaxError 如果在函数中,则为意外标记

问题描述

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

如果我将“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>";
  });
  } 

标签: javascriptif-statementgoogle-apps-scriptunexpected-token

解决方案


语句表达式之间是有区别的。

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

var colour = ...是一个期望等号右侧的表达式的语句。你不能在if那里发表声明。您可以使用条件运算符来制作条件表达式:

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],而不是比较它。


推荐阅读