5

我在谷歌标签管理器中有这段代码:

<!-- 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>

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

这可能意味着“不是一个功能”吗?诡异的!

4

1 回答 1

7

这是编写IIFE的一种更短的方法:

!function(){console.log('foo')}()

比以下字符短 1 个字符:

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

于 2017-09-20T11:25:50.997 回答