【学习笔记】“JavaScript深入执行上下文栈”学习笔记

真正的大神能把知识讲得有条不紊!,站在巨人的肩膀上学习
学习地址https://github.com/mqyqingfeng/Blog
声明:图片及内容摘自上述链接,这里只是记录学习笔记,完整版请查阅上述链接。

下面的代码执行结果是什么?

var foo = function() {
    console.log('foo1');
}

foo();// foo1

var foo = function() {
    console.log('foo2');
}

foo();// foo2

那么下面这段代码呢?

function foo() {
    console.log('foo1');
}

foo();// foo2

function foo() {
    console.log('foo2');
}

foo();// foo2

上述输出结果不同的原因是:
JavaScript引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。当执行一段代码的时候,会进行一个"准备工作",例如第一个例子里的变量提升,第二个例子里的函数提升。

可执行代码

??

可执行代码栈

??

挂起挂起

posted @ 2020-04-16 14:25  丹哥不是哥  阅读(140)  评论(0编辑  收藏  举报