• JavaScript 变量提升


    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

    JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

    其实主要理解 js 的解析机制就行。

    遇到 script 标签的话 js 就进行预解析,将变量 var 和 function 声明提升,但不会执行 function,然后就进入上下文执行,上下文执行还是执行预解析同样操作,直到没有 var 和 function,就开始执行上下文。如:

    a=5;
    show();
    var a;
    function show(){};

    预解析:

    function show(){};
    var a;
    a=5;
    show();

    需要注意都是函数声明提升直接把整个函数提到执行环境的最顶端。

    除了以上的函数声明方式外,还可以使用匿名函数的方式。

    声明:

    var 变量名称=function(形参列表){
      //函数体
    }

    调用:

    变量名称(实参列表)

    注意:使用匿名函数的方式不存在函数提升,因为函数名称使用变量表示的,只存在变量提升。例:

    var getName=function(){
      console.log(2);
    }
    
    function getName(){
      console.log(1);
    }
    
    getName();
    //结果为2

    可能会有人觉得最后输出的结果是 1。但是 getName 是一个变量,因此这个变量的声明也将提升到顶部,而变量的赋值依然保留在原来的位置。需要注意的是,函数优先,虽然函数声明和变量声明都会被提升,但是函数会首先被提升,然后才是变量。

    //函数、变量声明提升后
    function getName(){    //函数声明提升到顶部
      console.log(1);
    }
    
    var getName;    //变量声明提升
    getName = function(){    //变量赋值依然保留在原来的位置
      console.log(2);
    }
    
    getName();    // 最终输出:2
  • 相关阅读:
    Homekit_Dohome_智能灯带
    智能蓝牙球泡灯
    域名与网站名区别
    手机屏幕的分辨率和图像尺寸关系
    关于背景图片定位问题
    http://selectorgadget.com/
    经典网址
    进度条
    html5 触摸控制
    html背景音乐
  • 原文地址:https://www.cnblogs.com/Strong-stone/p/10280843.html
Copyright © 2020-2023  润新知