[英]javascript hoisting for global variable and function
我在想吊装。 我知道全局函数名称是否与全局变量相同,函数会覆盖变量的名称。 这样对吗?
这是我的代码。
(function() { console.log('console.log#1 ' + globalString); // globalString function })(); var globalString = 'I\\'m globalString variable'; (function() { console.log('console.log#2 ' + globalString); // string })(); function globalString() { console.log('I\\'m globalString function'); }
结果表明我像打击
console.log#1 function globalString ()
{
console.log ( 'I\'m globalString function' );
}
console.log#2 I'm globalString variable
如果函数定义覆盖变量的console.log#2,则打印globalString函数。 我不知道变量和函数如何提升。 请帮忙。
函数声明(如您的globalString()
)被吊起。 对于解释器,您的代码如下所示:
var globalString = function globalString() { console.log('I\\'m globalString function'); }; (function() { console.log('console.log#1 ' + globalString); // globalString function })(); globalString = 'I\\'m globalString variable'; (function() { console.log('console.log#2 ' + globalString); // string })();
在初始IIFE运行之前, globalString
是函数。 在最初的IIFE运行之后,但是在第二个IIFE运行之前,然后将globalString
重新分配给该字符串。 普通的分配不会被挂起-只有变量名是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.