使用ES6箭头功能时如何修复'Uncaught SyntaxError:Unexpected token =>'

时间:2019-09-10 09:25:53

标签: javascript events ecmascript-6 arrow-functions

当我将'e'参数放在方括号中,然后使用ES6箭头功能时,控制台上出现错误消息'Uncaught SyntaxError:Unexpected token =>'。但是,从括号中删除参数时没有错误。参数是否应该有括号?

//Event: add book
document.querySelector("#book-form").addEventListener("submit", (e) 
=> {
  //prevent default
  e.preventDefault();
  // get form value
  const title = document.querySelector("#title").value;
  const author = document.querySelector("#author").value;
  const isbn = document.querySelector("#isbn").value;

2 个答案:

答案 0 :(得分:0)

箭头函数在参数和=>之间不能有换行符:

14.2 Arrow Function Definitions

  

ArrowFunction [输入,收益,等待]:

     
      
  • ArrowParameters [?Yield,?Await] [此处没有LineTerminator] => ConciseBody
  •   

删除换行符,或将其放在其他位置。您也可以改用命名函数,例如:

const submitHandler = (e) => {
  // ...
};
document.querySelector("#book-form").addEventListener("submit", submitHandler);

答案 1 :(得分:0)

首先,您的函数调用和函数声明未关闭。其次,箭头不能仅在其直线上。

//Event: add book
document.querySelector("#book-form").addEventListener("submit", (e) => {
  //prevent default
  e.preventDefault();
  // get form value
  const title = document.querySelector("#title").value;
  const author = document.querySelector("#author").value;
  const isbn = document.querySelector("#isbn").value;
//Close function body, then function call.
});