简单的说下,(function(){...})() 与 (function(){...}()) 有什么区别?

时间:2022-04-27
本文章向大家介绍简单的说下,(function(){...})() 与 (function(){...}()) 有什么区别?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

大周末的写太长了也没人看,标题所提问,其实没有区别,

function xxx(){...},这是一个函数,解释器知道了,但并不运行它;

xxx(),解释器遇到它就会执行它。

IIFE写法的好处:

1,普通写法代码多,并且定义和执行不在一起;

2,占用命名空间;

不想给某些函数起名,又想让它立即执行,那怎么办呢?简单啊,将之转化为表达式,加个()呗,变成这样,

(function xxx(){console.log('xxx')})();

那既然都立即执行了,干脆函数名也不要了吧,于是,

(function (){console.log('xxx')})();

为啥这样好呀?

因为IIFE搞了一个新的作用域,你的代码碰不到全局对象了。

什么是IIFE?

立即执行函数表达式 IIFE(Immediately-invoked function expression)