JavaScript 执行期上下文 & 闭包
一、执行上下文(Execution Context)JavaScript 执行代码时,会为每一段可执行代码创建一个 执行上下文,它是代码运行的“环境”。 三种类型 全局执行上下文:脚本启动时创建,全局作用域。 函数执行上下文:每次调用函数时创建。 eval 执行上下文:eval 中执行代码时创建(不常用)。 执行上下文的结构每个执行上下文在运行时包含三个核心部分: 组件 说明 LexicalEnvironment 当前上下文的词法环境(管理 let/const) VariableEnvironment 当前上下文的变量环境(管理 var/函数声明) ThisBinding this 的值 ✅ 简记:执行上下文 = 词法环境 + 变量环境 + this 二、词法环境 vs 变量环境 名称 负责 特点 LexicalEnvironment let、const 有块级作用域,有“暂时性死区”(TDZ) VariableEnvironment var、函数声明 有变量提升,无块级作用域 ⚠️ 注意:函数开始...
JavaScript 生成器
生成器基础生成器返回一个迭代器对象 或者说是一个带迭代器的集合 也就是可迭代的对象 123456function* generator() { const a = yield 1; // 暂停,返回 {value: 1, done: false} return a; // 结束,返回 {value: a, done: true}}const gen = generator(); // 返回生成器对象(可迭代对象) 1. next() 方法传参机制(重点补充)核心规则:next(value) 的参数会成为上一个 yield 表达式的返回值 123456789101112131415161718192021function* demo() { console.log("开始"); const step1 = yield "第一步"; // next() 停在这里 console.log("step1:", step1); // step1: 外...
JavaScript 迭代器
迭代是什么迭代是指遍历一个集合(如数组、对象、集合等)的所有元素,通常是按照某种顺序访问。迭代器(Iterator)就是提供这种遍历功能的对象。 迭代器 迭代器(Iterator)是一种 对象,它提供了一种标准的方式来 按顺序访问集合中的元素 。迭代器的核心是它实现了 next()方法,每次调用 next()会返回当前元素并移动指针到下一个位置。 迭代器协议规定:要成为一种迭代器,必须满足迭代器对象有一个 next 方法,next 方法返回一个对象,这个对象包含两个属性,value:当前迭代的值(可以是任意类型)和 done:布尔值,表示迭代是否完成。 其实还有 return()方法和 throw() 用来提前结束或者抛出错误 可迭代对象实现了【Symbol.iterator】 方法的对象 ,这个方法返回一个迭代器对象。可迭代对象可以用 for...of 遍历,或通过 ... 展开 示例: 1234567891011121314151617181920// 让一个普通对象变为可迭代对象const myIterableObject = { dat...
无标题
计算机系统结构与软硬件交互核心知识点笔记一、计算机系统结构 vs 计算机组成计算机系统结构 本质:软硬件功能分配与交界面定义(解决“做什么”)。 核心内容:规定软件可感知的硬件属性,如指令集(加法/乘法指令)、数据表示(整数/浮点数格式)、寻址方式等。 定位:对机器语言程序员可见(需了解指令集等接口规范)。 计算机组成 本质:硬件实现细节(解决“怎么做”)。 核心内容:在系统结构定义的功能框架下,设计具体硬件逻辑,如乘法器电路(串行进位/并行进位)、Cache 结构(直接映射/组相联)、控制器逻辑等。 定位:对程序员透明(无需关注底层电路实现)。 二、软硬件交界面与分层结构软硬件交界面 核心载体:指令集体系结构(ISA),是软件与硬件交互的唯一“契约”。 位置:位于分层结构的“机器指令层”,下方为硬件(微程序、逻辑电路),上方为软件(操作系统、汇编语言、高级语言等)。 作用:定义软件可调用的硬件资源(指令、寄存器、内存编址)及硬件需实现的功能规范。 软硬件分层 本质:计算机系统按抽象程度从下到上的多层结构组织,典型分层(从下到上):硬...