【问题标题】:Unexpected token else其他意外令牌
【发布时间】:2020-12-04 21:21:44
【问题描述】:

我在我的 javascript 代码中遇到了语法错误。我收到“意外令牌其他”错误消息。 我希望有人可以帮助我。这是我的代码:

function doRed() {
  for (var pixel of img.values()){
    var avg = (pixel.getRed()+pixel.setGreen()+pixel.getBlue())/3;
    if ( avg() < 128) {
    pixel.setRed(2*avg);
    pixel.setGreen(0);
    pixel.setBlue(0);
  }
    }
  else {
    pixel.setRed(255);
    pixel.setGreen(2*avg - 255);
    pixel.setBlue(2*avg - 255);
  }
  var imgcanvas = document.getElementById("can");
  img.drawTo(imgcanvas);
}

【问题讨论】:

  • 你的 for 循环的结束 } 在错误的位置
  • 我的错,我在 else 语句上放错了“}”。此代码用于将红色滤镜应用于图像的按钮。不过,当我按下按钮时,图像没有变化
  • 你把else放在for循环上
  • 你有for ( ... ) { ... } else { ... } 这是错误的。在for 之后不允许使用else。如果您一致且正确地缩进代码,您会清楚地看到它。

标签: javascript if-statement syntax-error unexpected-token uncaught-reference-error


【解决方案1】:

您的else-statement 位置错误,跟随for-loop 而不是if-statement。

你可能打算这样写:

function doRed() {
  for (var pixel of img.values()) {
    var avg = (pixel.getRed()+pixel.setGreen()+pixel.getBlue())/3;
    if (avg() < 128) {
      pixel.setRed(2*avg);
      pixel.setGreen(0);
      pixel.setBlue(0);
    }
    else {
      pixel.setRed(255);
      pixel.setGreen(2*avg - 255);
      pixel.setBlue(2*avg - 255);
    }
  }

  var imgcanvas = document.getElementById("can");
  img.drawTo(imgcanvas);
}

【讨论】:

  • 非常感谢!我的代码本身的功能仍然没有做它应该做的事情。
  • @AlexisHarrison 是的,但那是 a different question,需要更多详细信息。
  • @AlexisHarrison 那是另一回事。 :) 如果这回答了上述问题,请将答案标记为已接受,如果您需要其他方面的进一步帮助,请创建一个新问题。
  • 我已经想通了,非常感谢您的帮助!
猜你喜欢
  • 2017-05-01
  • 1970-01-01
  • 2016-02-18
  • 2013-06-03
  • 1970-01-01
  • 2019-08-06
  • 2014-11-29
  • 2018-11-19
  • 2017-04-17
相关资源
最近更新 更多