!在 javascript 中发挥作用?

! function in javascript?

我为我的愚蠢问题道歉,我不擅长 javascript 和 angularjs。我一直在参考一些项目的代码,对此我真的很困惑,它到底是什么 !function(a,b,c){}(x,y,z)。我以前从未见过它。我不擅长 javascript 也不擅长 angularjs。感谢大家的帮助!

!function (e, n, t) {
    "use strict";
    // code
}(window, angular, jQuery)

它只是简单地告诉 js 忽略这个函数并且

它使它像这样未定义:

    function Demo(){
    console.log('log something');} 

输出将是:

log something

但是 如果你在函数前放一个 ! 结果会是:

Demo is not defined

这是一种立即执行匿名函数的 hacky 方法。如果您要正常定义它(以 function 开头的行,那么它会立即将该函数提升为 函数语句 并强制您正常调用它。因为 ! 是在它前面,让编译器将它评估为 函数表达式 ,可以立即调用。这里的感叹号是布尔值 not。括号或加号也可以。

这将是等效的代码:

(e,n,t) => { /** */ }(window, angular, jQuery);

如愿

(function (e,n,t) { /** */ })(window, angular, jQuery);

因为括号也会使该行被评估为表达式。

正在定义匿名函数,然后用参数window, angular, jQuery调用,在函数体内变成e,n,t

旁注:我不建议编写这样的函数,因为它是不常见的语法