美文网首页
7、变量提升的处理机制(2)

7、变量提升的处理机制(2)

作者: 自己写了自己看 | 来源:发表于2021-01-08 16:13 被阅读0次

1、条件判断下的变量提升:
EC(G)全局上下文中的变量提升, 条件中带 function 的在新版本浏览器中只会
提前声明,不会再提前赋值了;
【老版本】:
var a;
func = 函数;
【新版本】:
var a;
func;

if (!('a' in window)) {
     var a = 1;
     function func() {}
}
console.log(a);  // undefined
fn();  // 5

function fn() {
    console.log(1)
}
fn();  // 5

function fn() {
    console.log(2)
}
fn();  // 5

var fn = function() {
    console.log(3)
}
fn();  // 3

function fn() {
    console.log(4)
}
fn();  // 3

function fn() {
    console.log(5)
}
fn()  // 3
var foo = 1

function bar() {
    //  无论条件是否成立,变量都会提前声明 
    if (!foo) {
        var foo = 10
    }
    console.log(foo)  // 10
}
bar()

相关文章

  • 7、变量提升的处理机制(2)

    1、条件判断下的变量提升:EC(G)全局上下文中的变量提升, 条件中带 function 的在新版本浏览器中只会提...

  • 变量提升的处理机制

    var与function 变量提升:在当前上下文中(全局/私有/块级),JS代码自上而下执行之前,浏览器会提前处理...

  • 第一部分 第4章 提升

    变量声明提升和函数声明提升 var a=2;这段代码引擎在处理时会处理成 所以 会输出undefined。同样函数...

  • 8、变量提升的处理机制(3)

    1、当前阶段浏览器对JS变量提升的处理: 向前兼容ES3/ES5规范:(1)判断体和函数体等不存在块级上下文,上下...

  • 6、变量提升的处理机制(1)

    1、变量提升:在当前上下文中(全局/私有/块级),JS代码自上而下执行之前,浏览器会提前处理一些事情(可以理解为词...

  • 《深入理解ES6》读书笔记——1.块级作用域绑定

    1)var声明及变量提升机制 1.概念 提升机制:在函数作用域或全局作用域中,通过var声明的变量,无论实际在哪里...

  • 《javascript基础补充--作用域与作用域链相关知识点》

    关键词:全局变量、局部变量、变量提升机制、内存回收机制、作用域、作用域链 变量(作用域) 局部变量可以与全局变量重...

  • 变量提升机制

    什么是变量提升 变量提升机制:当栈内存形成,JS代码自上而下执行之前,浏览器首先会把所有带“var”、“funct...

  • 变量提升和函数提升

    变量提升 所谓变量提升,就是变量的声明在执行前会被提升到改作用域顶部。 代码在执行前会被处理成如下形式: 函数提升...

  • 变量提升&&执行上下文

    //变量提升 预处理js引擎在代码正式执行之前会做一个预处理的工作:1.收集变量2.收集函数依据:var 将va...

网友评论

      本文标题:7、变量提升的处理机制(2)

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