摘要: 这里有段函数 function print(fn) { const a = 200; fn(); } const a = 100; function fn() { console.log(a); } print(fn); // 100 对此执行顺序的分析如下 // 执行上下文栈 ECSTACKS = 阅读全文
posted @ 2023-02-22 11:05 脆皮鸡 阅读(171) 评论(0) 推荐(0)
摘要: JavaScript深入之闭包 JavaScript深入系列第八篇,介绍理论上的闭包和实践上的闭包,以及从作用域链的角度解析经典的闭包题。 定义 MDN 对闭包的定义为: 闭包是指那些能够访问自由变量的函数。 那什么是自由变量呢? 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变 阅读全文
posted @ 2023-02-22 10:30 脆皮鸡 阅读(3) 评论(0) 推荐(0)
摘要: JavaScript深入之执行上下文 JavaScript深入系列第七篇,结合之前所讲的四篇文章,以权威指南的demo为例,具体讲解当函数执行的时候,执行上下文栈、变量对象、作用域链是如何变化的。 前言 在《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行 阅读全文
posted @ 2023-02-22 10:26 脆皮鸡 阅读(4) 评论(0) 推荐(0)
摘要: JavaScript深入之执行上下文栈 JavaScript深入系列第三篇,讲解执行上下文栈的是如何执行的,也回答了第二篇中的略难的思考题。 顺序执行? 如果要问到 JavaScript 代码执行顺序的话,想必写过 JavaScript 的开发者都会有个直观的印象,那就是顺序执行,毕竟: var f 阅读全文
posted @ 2023-02-22 10:26 脆皮鸡 阅读(15) 评论(0) 推荐(0)
摘要: JavaScript深入之变量对象 JavaScript深入系列第四篇,具体讲解执行上下文中的变量对象与活动对象。全局上下文下的变量对象是什么?函数上下文下的活动对象是如何分析和执行的?还有两个思考题帮你加深印象,快来看看吧! 前言 在上篇《JavaScript深入之执行上下文栈》中讲到,当 Jav 阅读全文
posted @ 2023-02-22 10:26 脆皮鸡 阅读(4) 评论(0) 推荐(0)
摘要: JavaScript深入之作用域链 JavaScript深入系列第五篇,讲述作用链的创建过程,最后结合着变量对象,执行上下文栈,让我们一起捋一捋函数创建和执行的过程中到底发生了什么? 前言 在《JavaScript深入之执行上下文栈》中讲到,当JavaScript代码执行一段可执行代码(execut 阅读全文
posted @ 2023-02-22 10:26 脆皮鸡 阅读(3) 评论(0) 推荐(0)