为什么我们在JS中添加'(')之前?

这个问题在这里已经有了答案:

  • JavaScript加上函数名称前面的3个答案

  • 尽量不要:

    function() { return 1; }()
    

    那么你将得到Uncaught SyntaxError: Unexpected token (

    JavaScript解析器以两种模式运行,我们称它为表达模式和普通模式,在正常模式下,JS解析器需要顶层声明,如函数和代码块。 使用'('进入表达式模式,在表达式模式下function() { }将被解释为常量,其值是一个函数。

    对象文字也有类似的情况:

    { foo: 1 }
    

    没有'('这意味着代码块,你有单一的表达式 - 当你使用({ foo: 1 })解析器进入表达式模式并将其解释为带有属性foo对象字面值时,常量1由标签继续。

    为什么是两种模式,它是通过语言语法来实施的,这在JS的情况下非常复杂(就像大多数基于C的语言一样)。

    链接地址: http://www.djcxy.com/p/94943.html

    上一篇: Why do we put '(' before fucntion in JS?

    下一篇: tilde ~ in front of anonymous function in JavaScript