Javascript 我是否需要将iLife与ES6模块一起使用?

Javascript 我是否需要将iLife与ES6模块一起使用?,javascript,ecmascript-6,module,iife,Javascript,Ecmascript 6,Module,Iife,在airbnb风格的指南中,它指出IIFE基本上是不需要的 7.2将立即调用的函数表达式用括号括起来。埃斯林特:包裹生命 为什么??一个立即调用的函数表达式是一个单独的单元——包装它,它的调用参数在参数中清晰地表达了这一点。注意,在一个到处都是模块的世界里,你几乎不需要生活 有人能解释为什么会这样吗?我在任何地方都找不到这样的解释:如果我在模块js脚本的顶层创建一个函数,它将不在全局名称空间中。IIFE最常见的用途是为变量创建一个存在的范围,这样它们就不会成为全局变量 模块有自己的作用域,在模块

在airbnb风格的指南中,它指出IIFE基本上是不需要的

7.2将立即调用的函数表达式用括号括起来。埃斯林特:包裹生命

为什么??一个立即调用的函数表达式是一个单独的单元——包装它,它的调用参数在参数中清晰地表达了这一点。注意,在一个到处都是模块的世界里,你几乎不需要生活


有人能解释为什么会这样吗?我在任何地方都找不到这样的解释:如果我在模块js脚本的顶层创建一个函数,它将不在全局名称空间中。

IIFE最常见的用途是为变量创建一个存在的范围,这样它们就不会成为全局变量


模块有自己的作用域,在模块顶层声明的变量的作用域是该模块,而不是全局的。

IIFE最常见的用途是为变量创建一个作用域,使其不成为全局变量


模块有自己的作用域,在模块顶层声明的变量的作用域是该模块,而不是全局性的。

模块的全部要点是它们显式地导出内容,其效果也是顶层声明不是全局性的。在我看来,任何名称空间都可能是您不想污染的名称空间。模块的全部要点是它们显式导出内容,其效果也是顶级声明不是全局的。在我看来,任何名称空间都可能是您不想污染的名称空间。谢谢,似乎我从根本上误解了模块,我的代码是双作用域的,因此越来越难以理解。谢谢,似乎我从根本上误解了模块,我的代码是双作用域的,因此越来越难以理解。
// immediately-invoked function expression (IIFE)
(function () {
  console.log('Welcome to the Internet. Please follow me.');
}());