IT虾米网

JS变量提升详解

sanshao 2021年07月29日 编程语言 187 0
本文章主要介绍了JS变量提升,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

代码示例:

var color = "blue";        // 全局变量 color 
function changeColor() { 
    console.log(color); 
    var color = "red"; 
    console.log(color); 
} 
 
changeColor();

运行结果为:

​undefined 
red

在执行函数时,函数内部声明的所有变量都会被隐式移动(或者说提升)到函数最开始的地方,并且被提升的只有变量的声明,而与之相关的赋值操作并不会提升,它还在其原来的位置上,也正因为这一特性,所以出现了与我们预期不符的结果。而实际上以上代码等同于如下代码:

var color = "blue";        // 全局变量 color 
function changeColor() { 
    var color;        // 将局部变量 color 声明放到函数开始地方 
    console.log(color); 
    color = "red";    // 对局部变量 color 进行赋值 
    console.log(color); 
} 
 
changeColor();

运行结果为:

​undefined 
red

参考书籍:《JavaScript面向对象编程指南》


发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

nslookup命令详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。