【学习笔记】“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引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。当执行一段代码的时候,会进行一个"准备工作",例如第一个例子里的变量提升,第二个例子里的函数提升。
可执行代码
??
可执行代码栈
??
挂起挂起
坚持,坚持,坚持。再坚持坚持!