我只是在
中看到过这种情况(function () {
// more code...
})()
基本上它可以防止代码在加载第一个()
和第二个()
之间的整个代码块之前执行,因此我们可以调用第一个{{1}内的函数1}}。
()
还有其他用途吗?
答案 0 :(得分:0)
我不知道你在问什么。 ()
调用没有参数的函数。
(function () {
console.log('Hi, I\'m in the function.');
})();
与:
相同function test () {
console.log('Hi, I\'m in the function.');
}
test(); // call the function without any arguments
第一个片段演示了一个IIFE(立即调用函数表达式),用于创建新范围。在IIFE内宣布的变量在IIFE之外是不可见的。
这是你有空()
的唯一情况。当然,如果()
不为空,则它们可用作分组运算符:(3 + 4) * 5
。
此分组运算符也用于上面的IIFE示例:函数包含在()
中,表示function
关键字未启动函数声明(这需要名称),但函数表达式,不需要名称。以下将导致语法错误:
function () {
console.log('Hi, I\'m in the function.');
}(); // SyntaxError: function statement requires a name
那是因为解析器看到function
并认为它是一个函数声明。为了告诉解析器它是一个函数表达式,我们可以使用只能与表达式一起使用的运算符:
(function () {})()
+function () {}()
-function () {}()
~function () {}()