什么是!javascript函数?

Leo*_*gal 3 javascript google-tag-manager facebook-pixel

我在谷歌标记管理器中有这个代码:

<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');

fbq('init', '***********');
fbq('set','agent','tmgoogletagmanager', '***********');
fbq('track', "PageView");
</script>
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有人能告诉我'!'是什么,或它做什么?我以前从未见过它,google/duckduckgo搜索没有产生任何结果,我可以看到.

这可能意味着"不是一种功能"吗?奇怪的!

Cer*_*rus 6

这是编写IIFE的较短方法:

!function(){console.log('foo')}()
Run Code Online (Sandbox Code Playgroud)

是1个字符短于:

(function(){console.log('foo')})()
Run Code Online (Sandbox Code Playgroud)

  • 例如,对于此类内容,请搜索“感叹号”。搜索角色的名字,而不是角色。 (2认同)