美文网首页
js变量提升

js变量提升

作者: 希染丶 | 来源:发表于2019-05-28 09:53 被阅读0次

    变量进入作用域方式

    1.语言内置:所有的作用域都有 this 和 arguments
    2.形式参数:函数的形式参数会作为函数作用域的一部分
    3.函数声明: function a(){}
    4.变量声明:var a;

    变量提升

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

    函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

    function test1() {
      a = 5;
      console.log(a);
      console.log(window.a);
      var a = 10;
      console.log(a);
    }
    test1();
    log依次为5,undefined,10;
    
    实际执行顺序
    
    function test1() {
      var a;
      a = 5;
      console.log(a);
      console.log(window.a);
      var a = 10;
      console.log(a);
    }
    
    

    因为a = 5,在test1内执行,所以window.a为undefined

    如果直接在window下执行

    a = 5;
    console.log(a);
    console.log(window.a);
    var a = 10;
    console.log(a);
    

    结果,5,5,10;

    相关文章

      网友评论

          本文标题:js变量提升

          本文链接:https://www.haomeiwen.com/subject/irngzqtx.html