我正在查看一些JavaScript代码,我无法弄清楚为什么在函数声明中使用逻辑运算符(!)。这是一个很小的提取物:
! function (a) {
! function (a)
{
"use strict";
a.Shorthand = {
UI: {},
helpers: {},
Data: {}
}
}(window), ...
}(!1);
我很确定它是一个IIFE(完成时),它的主要目的是缩小,但这就是我的目标。我没有遇到任何解释。 当剩下的代码存在时,一切正常。 感谢
答案 0 :(得分:0)
关于函数表达式而不是IIFE的函数声明。如果函数用作表达式,则可以imidiatelly调用它。如果它不是表达式的一部分,那么这段代码就无法工作:
!function(){}()
(function(){}())
(function(){})()
var a = function(){}()
虽然这样可行:
{{1}}