()在JavaScript中意味着什么

时间:2015-07-05 14:53:21

标签: javascript

我正在测试javascript中立即调用的函数。我发现在Chrome中运行以下代码时会抛出Uncaught SyntaxError: Unexpected token )

function foo(){
    console.log(1);
}();

我认为解析器将此代码分为两部分:函数声明和();。但是如果我在1之间添加()会发生什么,结果证明它不会引发任何错误。

所以我认为(1);是一个有效的表达式,但它意味着什么?

感谢您的回答。

2 个答案:

答案 0 :(得分:3)

立即调用函数表达式

(function foo(){
    console.log(1);
})();  // call the function here

说明:

假设您创建了一个函数:

function foo(){
        console.log(1);
}

现在我们调用这个函数:

foo()

现在,如果您看到我们刚刚给出了函数名称并调用它。现在我们可以在同一行中调用它:

(function foo(){
            console.log(1);
})();

这是article you can read

答案 1 :(得分:2)

(function(){
   //code goes here
 })();

是你想要的。

将那个放在那里只是将1作为参数传递给立即函数。如果在传入1时在函数内部执行了console.dir(arguments),它将打印出您传入的数字。

(function(){
   var args = Array.prototype.slice.call(arguments);
    console.dir(args); // prints [1][
 })(1);

换句话说,您创建该函数,然后立即调用它。使用()。