我在javascript garden网站上看到了这一点。有人可以解释它是如何工作的吗?
!function(){console.log("hi")}()
答案 0 :(得分:2)
在函数表达式之后,最终的'执行'parens不能合法地完成。一种典型的(更有感觉的,IMO)写作方式是更多的括号:
(function(){console.log('hi')})()
通过在函数表达式之前加上!
,JS解释器读取函数然后运行它。这是因为!
运算符优先于使用最终()
调用函数
答案 1 :(得分:1)
tl; dr 它定义了一个打印'hi'并立即调用它的函数。