depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
verify return:0 poll
errornotBefore=Jan 28 11:54:38 2019 GMT
notAfter=Apr 28 11:54:38 2019 GMT
和(function () {})()
之间是否有区别?
我已经看到两个结构都被引用,并且想知道它们是否代表构造完全相同的表达式的两种等效方法,或者它们是否是两个完全不同的表达式/结构?如果不同,它们有什么不同?
答案 0 :(得分:2)
这些表达式是等效的。
创建一个闭包,然后调用。表达式的值是闭包的返回值。
最简单的形式是function () {}()
,但是在顶层将使用IIFE,即SyntaxError。因此,将对闭包的创建或整个表达式加上括号。
但是,它可以在表达式上下文中使用,例如
let a = function () {}()
更新:您有时会看到的第三种形式(例如,在缩小的JS中)是!function () {}()
,在这种情况下,返回值当然是不同的。