【问题标题】:Unexpected token '{' at line 1第 1 行出现意外的令牌“{”
【发布时间】:2020-07-25 20:03:31
【问题描述】:

试图运行 internal Javascript 代码,但它给了我一个意外的令牌。我是 JS 的新手,所以我不知道这是什么意思

代码如下:

changeColor() {
    document.body.style.backgroundColor = blue;
};

document.button.onclick = changeColor();

【问题讨论】:

  • 你不是这个意思吗?函数 changeColor() { document.body.style.backgroundColor = blue; }; ???

标签: javascript unexpected-token


【解决方案1】:

您应该添加function 来声明它,如果它是一个字符串并在蓝色中添加引号并影响onclick 的函数引用而不是它的结果。

function changeColor() {
    document.body.style.backgroundColor = 'blue';
}

document.button.onclick = changeColor;

const changeColor = ()=> {
    document.body.style.backgroundColor = 'blue';
}

document.button.onclick = changeColor;

【讨论】:

  • 您正在调用 changeColor() 而不是将其作为命名函数引用传递
  • 建议你解释一下这个变化,让 OP 也能理解,因为 “我是 JS 的新手”
【解决方案2】:

在changeColor()前面加上“function”二字

function changeColor() { ... }

【讨论】:

    【解决方案3】:

    要在 JavaScript 中声明函数,您需要使用 function 关键字。

    function changeColor() {
        document.body.style.backgroundColor = "blue";
    };
    

    More about functions in JS

    document.body.style.backgroundColor = "blue"; - Blue 必须是字符串(必须用引号括起来)否则 JavaScript 会将其视为变量,并且由于您没有声明名为 blue 的变量,您将收到参考错误:ReferenceError: blue is not defined

    document.button.onclick = changeColor; 您不能在此处调用函数。你只需要传递一个函数引用。

    About onclick event handler

    这段代码可能还会给你一个错误TypeError: document.button is undefined。要使用 onclick 事件处理程序,您需要先获取此按钮元素。由于我没有看到您的整个代码,因此假设您的代码中有类似的内容:<button id="btn">Click Me</button>。您可以使用querySelector() 通过其 ID 来获取此按钮元素

    const button = document.querySelector('btn');
    button.onclick = changeColor;
    

    【讨论】:

    • 与上述答案相同的评论......您不想在运行时调用该函数
    • 你说得对。我没有注意到这一点。我看到没有“功能”关键字的功能,并立即写下并回答。我的坏:D
    • 还有一个未定义变量的错误。最佳做法是测试您自己的答案并解释所做的所有更改
    • 要在 JavaScript 中声明函数,您需要使用 function 关键字。 ~ const holdMyBeer = () => {}
    猜你喜欢
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多