繁体   English   中英

javascript提升全局变量和函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM