zoukankan      html  css  js  c++  java
  • 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面向对象编程指南》

    艺无止境,诚惶诚恐, 感谢开源贡献者的努力!!
  • 相关阅读:
    oracle 误删除表的几种恢复方法
    解决js在alert或者断点调试时才能赋值
    常用的Debug方式
    字节对齐
    CWnd::SetWindowPos的注意事项
    网络模块代码调试要点
    stub和mock
    全局变量的缺陷
    SVN切换地址
    C/C++如何得到int型最大值
  • 原文地址:https://www.cnblogs.com/d0usr/p/11211032.html
Copyright © 2011-2022 走看看