小编典典

函数表达式前面的 JavaScript 加号

all

我一直在寻找有关立即调用函数的信息,在某个地方我偶然发现了这个符号:

+function(){console.log("Something.")}()

有人可以向我解释+函数前面的标志是什么意思/作用吗?


阅读 137

收藏
2022-03-01

共1个答案

小编典典

它强制解析器将后面的部分+视为表达式。这通常用于立即调用的函数,例如:

+function() { console.log("Foo!"); }();

如果没有+那里,如果解析器处于期望语句(可以是表达式或几个非表达式语句)的状态,则该单词function看起来像函数 声明 的开头而不是函数
表达式 ,因此()紧随其后(上面一行末尾的那些)将是一个语法错误(在那个例子中,没有名字也是如此)。 使用
+它使它成为一个函数表达式,这意味着名称是可选的,并导致对该函数的引用,该函数可以被调用,因此括号是有效的。

+只是其中一种选择。它也可以是-, !,~或几乎任何其他一元运算符。或者,您可以使用括号(这更常见,但在语法上既不正确也不正确):

(function() { console.log("Foo!"); })();
// or
(function() { console.log("Foo!"); }());
2022-03-01