-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[js] 第79天 举例说明什么是IIFEs?它有什么好处? #570
Comments
Instantly Invoked Function Expression 即时调用函数表达式 示例;(function () {
// ... statements
return ...
)()
好处
|
在v8引擎架构里,对于top-level 的代码会做 pre-parsing 来检测是否有语法错误。然而这是一种性能浪费,应为在full-parsing 的时候遇到语法错误自然会抛错。 所以V8 提供了一种hack方式就是IIFE,绕过对top-level代码的 pre-parsing |
可以使用+ - = !符号将匿名函数或函数声明转为函数表达式
|
1.创建局部作用域,避免全局污染 |
自执行匿名函数,我一般用它来 1. 独立作用域,2. 直接递归,3. 节约变量
|
IIFE: 立即执行函数
1.在
通过立即执行函数来创造一个新的作用域并缓存变量,来解决闭包带来的副作用问题 2.模块化 由于立即执行函数,不污染外部作用域的原则,因此诞生了umd模块的写法。一般主流的框架都会提供umd格式的js,通过script标签注入页面后会生成唯一一个全局变量,内部变量都不会暴露出来 |
立即执行函数为什么可以立即执行?
而(),! ?;等符号就会把函数声明语句转换成函数表达式 |
|
IIFES: 自执行函数, 创建局部作用域,避免全局污染。 |
第79天 举例说明什么是IIFEs?它有什么好处?
The text was updated successfully, but these errors were encountered: