Javascript 需要帮助了解以下IIFE代码的工作原理吗
我最近在一个竞争网站上遇到了这个javascript代码,但我不明白它是如何工作的Javascript 需要帮助了解以下IIFE代码的工作原理吗,javascript,iife,Javascript,Iife,我最近在一个竞争网站上遇到了这个javascript代码,但我不明白它是如何工作的 var a= 1; (function(){ console.log(a); var a = 2; console.log(a); })(); 我希望输出是 1 2 但令我惊讶的是,最初的输出是 未定义 二, 有人能解释一下它是如何工作的吗?提前感谢。变量a的声明被带到范围的顶部。这个过程叫做吊装 var a= 1; (function(){ var a; console
var a= 1;
(function(){
console.log(a);
var a = 2;
console.log(a);
})();
我希望输出是
1 2
但令我惊讶的是,最初的输出是
未定义
二,
有人能解释一下它是如何工作的吗?提前感谢。变量a的声明被带到范围的顶部。这个过程叫做吊装
var a= 1;
(function(){
var a;
console.log(a);
a = 2;
console.log(a);
})();
考虑一个没有IIFE和全局变量的通用代码段
函数func{
console.logx
var x=2;
console.logx
}
我相信这就是本地化。这个函数创建了一个新的局部全局作用域。这是一个非常常见的例子。当然,网上有很多解释。