JavaScript高级程序设计(第4版)
文章平均质量分 51
阅123
这个作者很懒,什么都没留下…
展开
-
《第11章 期约与异步函数》
一、异步编程 同步行为对应内存中顺序执行的处理器指令。每条指令都会严格按照它们出现的顺序来执行,而每条指令执行后也能立即获得存储在系统本地(如寄存器或系统内存)的信息。 异步行为类似于系统中断,即当前进程外部的实体可以触发代码执行。 二、期约 内部操作在期约的执行器函数中完成。执行器函数主要有两项职责:初始化期约的异步行为和控制状态的最终转换。其中,控制期约状态的转换是通过调用它的两个函数参数实现的。这两个函数参数通常都命名为resolve()和reject()。调用resolve()会把状态切换为兑原创 2021-07-18 19:29:42 · 150 阅读 · 0 评论 -
《第10章 函数》
一、理解参数 在使用function 关键字定义(非箭头)函数时,可以在函数内部访问 arguments 对象,从中取得传进来的每个参数值 如果函数是使用箭头语法定义的,那么传给函数的参数将不能使用arguments 关键字访问,而只能通过定义的命名参数访问。 二、函数内部 属性名称 内容 arguments arguments 是一个类数组对象,包含调用函数时传入的所有参数 this 在标准函数中,this 引用的是把函数当成方法调用的上下文对象,这时候通常称其为this 值(在网原创 2021-07-18 14:41:14 · 81 阅读 · 0 评论 -
《第9章 代理与反射》
一、代理基础 捕获器就是在处理程序对象中定义的“基本操作的拦截器”。每个处理程序对象可以包含零个或多个捕获器,每个捕获器都对应一种基本操作,可以直接或间接在代理对象上调用。每次在代理对象上调用这些基本操作时,代理可以在这些操作传播到目标对象之前先调用捕获器函数,从而拦截并修改相应的行为。 二、代理捕获器与反射方法 基本操作 get() 捕获器会在获取属性值的操作中被调用。对应的反射API 方法为 Reflect.get() set() 捕获器会在设置属性值的操作中被调用。对应的反射A原创 2021-07-18 11:07:07 · 108 阅读 · 0 评论 -
《第8章 对象、类与面向对象编程》
一、理解对象 数据属性包含一个保存数据值的位置。值会从这个位置读取,也会写入到这个位置。数据属性有4个特性描述它们的行为 属性名称 功能 [[Configurable]] 表示属性是否可以通过delete 删除并重新定义,是否可以修改它的特性,以及是否可以把它改为访问器属性。默认情况下,所有直接定义在对象上的属性的这个特性都是true [[Enumerable]] 表示属性是否可以通过for-in 循环返回。默认情况下,所有直接定义在对象上的属性的这个特性都是true [[Wri原创 2021-07-17 17:11:50 · 72 阅读 · 0 评论 -
《第7章 迭代器与生成器》
## 一、迭代器模式 实现 Iterable 接口(可迭代协议)要求同时具备两种能力:支持迭代的自我识别能力和创建实现Iterator 接口的对象的能力 二、生成器 调用生成器函数会产生一个生成器对象。生成器对象一开始处于暂停执行的状态。与迭代器相似,生成器对象也实现了 Iterator 接口,因此具有 next() 方法 yield 关键字可以让生成器停止和开始执行,也是生成器最有用的地方。遇到这个关键字后,执行会停止,函数作用域的状态会被保留。停止执行的生成器函数只能通过在生成器对象上调用 nex原创 2021-07-17 14:01:26 · 75 阅读 · 0 评论 -
《第6章 集合引用类型》
一、 Array from() 用于将类数组结构转换为数组实例, of() 用于将一组参数转换为数组实例 Array.from()还接收第二个可选的映射函数参数。这个函数可以直接增强新数组的值,而无须像调用Array.from().map()那样先创建一个中间数组。还可以接收第三个可选参数,用于指定映射函数中this 的值。但这个重写的this 值在箭头函数中不适用。 const a1 = [1, 2, 3, 4]; const a2 = Array.from(a1, x => x**2); co原创 2021-07-16 14:39:22 · 77 阅读 · 0 评论 -
《第5章 基本引用类型》
一、RegExp 匹配模式的标记: g:全局模式,表示查找字符串的全部 内容,而不是找到第一个匹配的内容就结束。 i:不区分大小写,表示在查找匹配时忽略pattern 和字符串的大小写。 m:多行模式,表示查找到一行文本末尾时会继续查找。 y:粘附模式,表示只查找从lastIndex 开始及之后的字符串。 u:Unicode 模式,启用Unicode 匹配。 s:dotAll 模式,表示元字符.匹配任何字符(包括\n 或\r)。 如:// 匹配字符串中的所有"at" let pattern1 = /at原创 2021-07-15 16:35:09 · 81 阅读 · 0 评论 -
《第4章 变量、作用域与内存》
一、原始值与引用值 原始值就是最简单的数据,引用值则是由多个值构成的对象 原始值变量赋值时,原始值会被复制到新变量的位置;引用值两个变量实际上指向同一个对象 二、执行上下文与作用域 在浏览器中,全局上下文就是我们常说的 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法。 const 需要在声明变量时同时赋值,并且不能再修改,但是对象的键不受限制可以修改,如果想让整个对象都不能修改,可以使用 Object.freeze(),这样再给属性赋值时原创 2021-07-15 14:26:36 · 52 阅读 · 0 评论 -
《第3章 语言基础》
一、语法 严格模式:在脚本或函数体的开头加上 "use strice" 在函数内定义变量时省略 var 操作符,可以创建一个全局变量 message = 'hi'//全局变量 二、变量 var 和 let 的区别 var let 声明的关键词变量会自动提升到函数作用域的顶部,即先输出再定义不会报错,因为把所有声明都提升到了顶部先执行 变量不会在作用域中被提升 声明的范围是函数作用域 声明的范围是块作用域(也就是一个大括号内) 允许同一个块内出现冗余声明 不允许同一个块内出现冗余声原创 2021-07-13 15:26:47 · 91 阅读 · 0 评论 -
《第2章 HTML中的 JavaScript 》
< script >元素的几个重要属性: 属性名 功能 async 表示应该立即下载脚本,但不能组织其他页面动作。只对外部脚本有效 charset 使用 src 属性时指定的字符集 crossorigin 配置相关请求的 CORS(跨源资源共享)设置 defer 表示脚本可以延迟到文档被完全解析和显示之后再执行。只对外部脚本文件有效 integrity 允许比对接收到的资源和指定的加密签名以验证子资源完整性 src 包含要执行的的代码的外部文件 de.原创 2021-07-12 20:19:10 · 58 阅读 · 0 评论 -
《第1章 什么是 JavaScript 》
《第1章 什么是 JavaScript 》 1.1 简短的历史回顾 JavaScript 是由网景公司最初研发的一个用来处理简单的数据验证的客户端脚本语言,后与微软开发的 JavaScript 规范化成为了一门通用、跨平台、厂商中立的脚本语言的语法和语义。 1.2 JavaScript 实现 JavaScript 包括以下几个部分:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM) 1.2.1 ECMAScript Web 浏览器只是ECMAScript 实现可能原创 2021-07-12 14:54:28 · 98 阅读 · 0 评论