Javascript IFFE类型错误“;“字符串”;这不是一个函数

Javascript IFFE类型错误“;“字符串”;这不是一个函数,javascript,ecmascript-6,Javascript,Ecmascript 6,查看以下es6代码: let person = "John Malkovich" (() => { console.log("Original person was ", person); person = "Drew Barrymore"; console.log("New person " + person); })(); 当我执行此程序时,它会抛出以下错误: "TypeError: \"John Malkovich\" is not a function 现在我知

查看以下es6代码:

let person = "John Malkovich"
(() => {
  console.log("Original person was ", person);

  person = "Drew Barrymore";

  console.log("New person " + person);
})();
当我执行此程序时,它会抛出以下错误:

"TypeError: \"John Malkovich\" is not a function

现在我知道如果我添加一个
在第1行末尾,即
让person=“John Malkovich”程序工作。我唯一头疼的是无法理解为什么会发生这种奇怪的错误。

如果语法在这一点上是有效的,那么表达式后面的一个开括号(可能中间有一个换行符)将导致解释器试图将表达式作为函数调用。即:

someExpression()

所有人都将尝试调用
someExpression
。不会自动插入分号,因为如果
someExpression
恰好可调用,则语法有效。(ASI通常只插入分号,以将不同的语句彼此分开,否则语法将无效)

someExpression ()
someExpression
()