what does !function in Javascript mean?
本问题已经有最佳答案,请猛点这里访问。
很抱歉发布此消息,但是!函数不支持google,在我的javascript代码中找不到它。
以下是Twitter的使用方法:
1 2 | Tweet !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); |
来自https://twitter.com/about/resources/buttons#
它是自调用匿名函数的简略方法或替代方法:
1 2 3 | (function(){ // code })(); |
可以写成:
1 2 3 | !function(){ // code }(); |
您也可以使用
如果你只是这样做:
1 2 3 | function(){ // code }(); |
这将产生问题,这就是为什么需要在它之前添加
引用文件,第12.4节:
An ExpressionStatement cannot start with the function keyword because
that might make it ambiguous with a FunctionDeclaration.
为了更好地理解这个概念,您应该查看:
- 函数声明与函数表达式
它通常用于解决JavaScript语法中的一个奇怪问题。这会导致语法错误:
1 2 | function() { }(); |
它被解读为一个函数声明(如
他们否定的是结果,而不是函数本身:
1 2 3 | !function( x ){ return x }( true ); !true false |
实际上,它是一种稍微压缩的形式:
1 | (function(){}()) |
因为它需要少一个字符。需要这样做的原因是您不能直接调用函数声明,例如,这是无效的:
1 | function(){}() |
但是,在开始时添加