这是怎么回事!function(){console.log(" hi")}()

时间:2013-05-10 19:52:10

标签: javascript anonymous-function function-expression

我在javascript garden网站上看到了这一点。有人可以解释它是如何工作的吗?

!function(){console.log("hi")}()

2 个答案:

答案 0 :(得分:2)

在函数表达式之后,最终的'执行'parens不能合法地完成。一种典型的(更有感觉的,IMO)写作方式是更多的括号:

(function(){console.log('hi')})()

通过在函数表达式之前加上!,JS解释器读取函数然后运行它。这是因为!运算符优先于使用最终()调用函数

答案 1 :(得分:1)

Look at this answer

tl; dr 它定义了一个打印'hi'并立即调用它的函数。