gpt4 book ai didi

javascript 函数导致爆炸!句法

转载 作者:行者123 更新时间:2023-11-28 08:36:55 24 4
gpt4 key购买 nike

我现在在一些库上看到了这种语法,我想知道它的好处是什么。 (请注意,我很清楚闭包以及代码在做什么,我只关心语法差异)

!function(){
// do stuff
}();

作为更常见的替代方案

(function(){
// do stuff
})();

用于自调用匿名函数。

我想知道一些事情。首先,是什么让上面的例子真正发挥作用?为什么需要 bang 才能使该语句在语法上正确?我还被告知 + 可以工作,而且我确信还有其他一些可以代替 !

第二,有什么好处?我只能说它拯救了一个 Angular 色,但我无法想象这是一个吸引众多采用者的巨大好处。我还缺少其他一些好处吗?

我能看到的唯一其他区别是自调用函数的返回值,但是在这两个示例中,我们并不真正关心函数的返回值,因为它仅用于创建闭包。那么有人可以告诉我为什么会使用第一种语法吗?

最佳答案

理想情况下,您应该能够简单地完成这一切:

function(){
// do stuff
}();

这意味着声明匿名函数并执行它。但由于 JS 语法的特殊性,这是行不通的。

因此实现这一目标的最短形式是使用一些表达式,例如UnaryExpression(以及 CallExpression):

!function(){
// do stuff
}();

或者为了好玩:

-function(){
// do stuff
}();

或者:

+function(){
// do stuff
}();

或者甚至:

~function(){
// do stuff
return 0;
}( );

关于javascript 函数导致爆炸!句法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com