《javascript高级程序设计》学习笔记 | 23.JSON

3 月 5 日
阅读 6 分钟
160
关注前端小讴,阅读更多原创技术文章JSONJSON 是 JS 对象简谱,是一种通用的数据格式和 JS 有相同的语法,但不属于 JS,很多语言都能解析和序列化 JSON相关代码 →语法JSON 支持 3 种类型的值简单值:字符串、数值、布尔值、null,undedined 不可以对象:复杂数据类型,有序键/值对,每个值可以是简单值/复杂类型数组:复...

《javascript高级程序设计》学习笔记 | 21.2.错误处理

2 月 28 日
阅读 8 分钟
422
关注前端小讴,阅读更多原创技术文章错误处理相关代码 →try/catch 语句ES3 新增了try/catch语句,基本语法与 Java 中的 try/catch 一样 {代码...} try 块中有代码发生错误,代码会立即退出执行并跳到 catch 块中所有浏览器都支持错误对象的message和name属性 {代码...} finally 子句try/catch 中可选的 finally 子句始终...

《javascript高级程序设计》学习笔记 | 11.3.异步函数

2021-09-29
阅读 8 分钟
2k
关注前端小讴,阅读更多原创技术文章异步函数ES8 新增异步函数(async/await),是 ES6 期约模式在 ECMAScript 函数中的应用以同步方式的代码执行异步相关代码 →异步函数ES8 对函数进行了扩展,新增 2 个关键字async和awaitasyncasync关键字用于声明异步函数,可用在函数声明、函数表达式、箭头函数和方法上 {代码...} a...

《javascript高级程序设计》学习笔记 | 11.2.期约

2021-09-16
阅读 25 分钟
2.3k
关注前端小讴,阅读更多原创技术文章期约期约是对尚不存在结果的一个替身,是一种异步程序执行的机制相关代码 →Promises/A+规范ES6 新增了Promise类型,其成为主导性的异步编程机制,所有现代浏览器都支持期约期约基础Promise类型通过new操作符实例化,需传入执行器(executor)函数作为参数 {代码...} 期约状态机期约是...

《javascript高级程序设计》学习笔记 | 11.1.异步编程

2021-09-01
阅读 3 分钟
1.7k
关注前端小讴,阅读更多原创技术文章异步编程ES6 新增了正式的Promise引用类型,支持更优雅地定义和组织异步逻辑接下来的几个版本,使用async和await关键字定义异步函数的机制相关代码 →同步与异步同步行为在内存中顺序执行处理器指令每条指令都在单个线程中按出现顺序执行每条指令执行后,都可以推断出程序的状态,并立...

《javascript高级程序设计》学习笔记 | 10.14-10.16.闭包

2021-08-20
阅读 10 分钟
1.5k
闭包是指引用了另一个函数作用域中变量的函数,通常在嵌套函数中实现(如果一个函数访问了它的外部变量,那么它就是一个闭包)闭包中函数的作用域链中,有对外部函数变量的引用

《javascript高级程序设计》学习笔记 | 10.12-10.13.递归

2021-08-11
阅读 3 分钟
1.5k
关注前端小讴,阅读更多原创技术文章相关代码 →10.12 递归递归函数是一个函数通过名称调用自己 {代码...} 函数逻辑与函数名是藕和的,因此将递归函数赋值给其他变量,并解除原函数名与函数之间的关系后,会报错 {代码...} 使用arguments.callee解藕(arguments.callee指向arguments所在函数的指针) {代码...} 严格模式...

《javascript高级程序设计》学习笔记 | 10.9-10.11.函数内部

2021-08-04
阅读 6 分钟
1.2k
关注前端小讴,阅读更多原创技术文章相关代码 →10.9 函数内部ES5 中函数内部有 2 个特殊对象 arguments 和 this,1 个内部属性 callerES6 新增new.target属性10.9.1 argumentsarguments是一个类数组对象,包含调用函数时传入的所有参数只有以funciton关键字定义函数时才会有arguments对象(箭头函数没有)对象有一个call...

《javascript高级程序设计》学习笔记 | 10.1-10.8.函数基础

2021-07-16
阅读 10 分钟
1.1k
关注前端小讴,阅读更多原创技术文章函数是对象,每个函数都是 Function 类型的实例,都与其他引用类型一样具有属性和方法函数名是指向函数对象的指针,不会与某个函数绑定(一个函数可能会有多个名字)相关代码 →4 种定义方式 {代码...} 10.1 箭头函数任何可以使用函数表达式的地方都可以使用箭头函数 {代码...} 如果只...

《javascript高级程序设计》学习笔记 | 9.3.代理模式

2021-06-29
阅读 4 分钟
1.2k
关注前端小讴,阅读更多原创技术文章代理模式相关代码 →跟踪属性访问通过捕获get、set、has等操作,可以监控对象何时何处被访问过 {代码...} 隐藏属性代理的内部实现对外部代码不可见,可隐藏目标对象的指定属性 {代码...} 属性验证所有的赋值操作都会触发set()捕获器,可根据所赋的值决定允许还是拒绝赋值 {代码...} 函...

《javascript高级程序设计》学习笔记 | 9.2.代理捕获器与反射方法

2021-06-17
阅读 15 分钟
1.4k
关注前端小讴,阅读更多原创技术文章代理捕获器与反射方法代理可以捕获13 种不同的基本操作,代理对象上执行的任一种操作只会有一种捕获处理程序被调用,不存在重复捕获现象只要在代理上操作,所有捕获器都会拦截对应的反射 API 操作相关代码 →get()在获取属性值的操作中被调用,对应的反射 API 方法为Reflect.get(targe...

《javascript高级程序设计》学习笔记 | 9.1.代理基础

2021-06-10
阅读 7 分钟
1.5k
关注前端小讴,阅读更多原创技术文章代理基础ES6 为的代理和反射为开发者提供拦截并向基本操作嵌入额外行为的能力代理是目标对象的抽象,其可以用作目标对象的替身,但完全独立于目标对象目标对象既可直接被操作,也可通过代理来操作,直接操作会绕过代理施予的行为相关代码 →创建空代理使用Proxy构造函数创建代理,接收...

《javascript高级程序设计》学习笔记 | 8.4.类

2021-06-01
阅读 15 分钟
1.3k
关注前端小讴,阅读更多原创技术文章类ES6 新引入class关键字具有正式定义类的能力,其背后使用的仍然是原型和构造函数的概念相关代码 →类定义与函数类型类似,定义类也有 2 种主要方式:类声明和类表达式,2 种方式都是用class关键字加大括号 {代码...} 类表达式在被求值前不能引用(同函数表达式),类定义不能声明提...

《javascript高级程序设计》学习笔记 | 8.3.继承

2021-05-25
阅读 12 分钟
1.4k
关注前端小讴,阅读更多原创技术文章继承面向对象语言支持 2 种继承方式:接口继承和实现继承JS 函数没有签名(不必提前声明变量的类型),只支持实现继承,依靠原型链相关代码 →原型链子类型构造函数的原型,被重写为超类型构造函数的实例 {代码...} 超类型实例的属性和方法,均存在于子类型的原型中子类型的实例可访问...

《javascript高级程序设计》学习笔记 | 8.2.创建对象

2021-05-10
阅读 15 分钟
1.4k
关注前端小讴,阅读更多原创技术文章创建对象创建单个对象:Object 构造函数 和 对象字面量缺点:使用一个接口创建很多对象,产生大量重复代码相关代码 →工厂模式抽象创建特定对象的过程,按照特定接口创建对象 {代码...} 工厂模式解决了创建多个相似对象的问题,但没有解决对象识别问题(怎样知道一个对象的类型)构造...

《javascript高级程序设计》学习笔记 | 8.1.理解对象

2021-04-23
阅读 12 分钟
1.4k
关注前端小讴,阅读更多原创技术文章理解对象ECMAScript 定义对象:无序属性的集合(一组没有特定顺序的值),其属性可以包含基本值、对象、函数,整个对象可以想象成一个散列表相关代码 →创建自定义对象的 2 种方法:Object 构造函数和对象字面量:用构造函数创建一个 Object 实例,然后为它添加属性和方法 {代码...} ...

《javascript高级程序设计》学习笔记 | 7.3.生成器

2021-04-20
阅读 8 分钟
1.7k
关注前端小讴,阅读更多原创技术文章生成器ES6 新增的结构,可以在一个函数块内暂停和恢复代码执行,可以自定义迭代器和实现协程相关代码 →生成器基础生成器的形式是一个函数,函数名称前加一个星号*可以定义函数的地方,都可以定义生成器(箭头函数除外) {代码...} 调用生成器函数会产生一个生成器对象,生成器对象实...

《javascript高级程序设计》学习笔记 | 7.2.迭代器模式

2021-04-13
阅读 7 分钟
1.5k
关注前端小讴,阅读更多原创技术文章迭代器模式ES6 新增了 2 个高级特性:迭代器和生成器迭代方法优/缺点for① 需知道如何使用数据结构 ② 遍历顺序不是固有的forEach()① 无法标识迭代终止 ② 只适用数组 ③ 回调结构较笨拙Iterator接口无需了解可迭代对象的结构,只需知道如何取得连续的值相关代码 →可迭代协议实现 Iterabl...

《javascript高级程序设计》学习笔记 | 6.5.WeakMap

2021-04-08
阅读 3 分钟
1.7k
关注前端小讴,阅读更多原创技术文章WeakMapWeakMap 是 ECMAScript6 的新增特性,是一种新的集合类型,是 Map 的“兄弟”类型,也是 Map 的子集“weak” 描述的是 JS 垃圾回收程序对待“弱映射”中键的方式相关代码 →基本 API使用new 关键字和WeakMap 构造函数可以创建一个空的弱映射 {代码...} 若映射的键只能是Object或者继...

《javascript高级程序设计》学习笔记 | 6.4.Map

2021-03-26
阅读 4 分钟
1.3k
关注前端小讴,阅读更多原创技术文章MapMap 是 ECMAScript6 的新增特性,是一种新的集合类型,其大多数特性都可以通过 Object 类型实现相关代码 →基本 API使用new 关键字和Map 构造函数可以创建一个空映射 {代码...} 可以给 Map 构造函数传入一个可迭代对象,需要包含键/值对数组 {代码...} 初始化后,可以使用set()添加...

《javascript高级程序设计》学习笔记 | 6.2.Array

2021-03-19
阅读 16 分钟
978
关注前端小讴,阅读更多原创技术文章ArrayECMAScript 的数组是一组有序的数据(和其他语言相同),每个槽位可以存储任意类型的数据(和其他语言不同)ECMAScript 的数组是动态大小的,随着数据添加而自动增长相关代码 →创建数组使用 Array 构造函数 {代码...} 给构造函数传入一个参数:若参数是数值,则 length 属性会被...

《javascript高级程序设计》学习笔记 | 4.1.原始值与引用值

2021-03-01
阅读 4 分钟
1.1k
JS 变量可以包含 2 种类型的数据:原始值和引用值原始值是简单数据(6 种原始值:Undefined、Null、Boolean、Number、String、Symbol),按值访问,操作实际值

《javascript高级程序设计》学习笔记 | 3.3.变量

2021-02-03
阅读 5 分钟
1.5k
关注前端小讴,阅读更多原创技术文章变量ECMAScript 变量是松散类型的:变量可以保存任何类型的数据3 个声明变量的关键字:var、const、let相关代码 →var 关键字不初始化时,变量保存 undefined {代码...} 初始化变量只是设置变量的值,可以改变保存的值,也可以改变值的类型 {代码...} var 声明作用域使用 var 操作符定...

《javascript高级程序设计》学习笔记 | 6.2.创建对象

2021-01-04
阅读 16 分钟
1.1k
关注前端小讴,阅读更多原创技术文章创建对象创建单个对象:Object 构造函数 和 对象字面量缺点:使用一个接口创建很多对象,产生大量重复代码相关代码 →工厂模式抽象了创建具体对象的过程用函数来封装以特定接口创建对象的细节 {代码...} 工厂模式解决了创建多个相似对象的问题,但没有解决对象识别问题——即怎样知道一...

《javascript高级程序设计》学习笔记 | 6.1.理解对象

2020-11-30
阅读 5 分钟
935
欢迎关注前端小讴的github,阅读更多原创技术文章理解对象面向对象的语言标志:类的概念ECMAScript 中没有类的概念ECMAScript 定义对象:无序属性的集合(一组没有特定顺序的值),其属性可以包含基本值、对象、函数,整个对象可以想象成一个散列表相关代码 →创建一个 Object 实例,然后为它添加属性和方法 {代码...} 对...

《javascript高级程序设计》学习笔记 | 5.7.单体内置对象

2020-09-21
阅读 3 分钟
1.5k
欢迎关注前端小讴的github,阅读更多原创技术文章单体内置对象相关代码 →由 ECMAScript 实现提供的,不依赖于宿主环境的对象,在 ECMAScript 程序执行之前就已经存在Global 和 MathGlobal 对象不属于任何其他对象的属性和方法,最终都是 Global 的属性和方法isNan(),isFinite(),parseInt(),parseFloat()URI 编码方法...

《javascript高级程序设计》学习笔记 | 5.6.基本包装类型

2020-08-25
阅读 8 分钟
1.2k
欢迎关注前端小讴的github,阅读更多原创技术文章基本包装类型相关代码 →3 个特殊的引用类型 Boolean、Number、String每读取一个基本类型值,后台就创建一个对应的基本包装类型的对象 {代码...} 上述步骤同样适用于 Boolean 和 Number类型引用类型和基本包装类型的主要区别在于对象的生存期:引用类型:离开作用域前,对...

《javascript高级程序设计》学习笔记 | 5.5.Function类型

2020-07-20
阅读 5 分钟
1.3k
欢迎关注前端小讴的github,阅读更多原创技术文章 Function 类型 函数是对象,每个函数都是 Function 类型的实例,都与其他引用类型一样具有属性和方法 函数名是指向函数对象的指针,不会与某个函数绑定(一个函数可能会有多个名字) 相关代码 → 3 种声明方式 {代码...} 访问函数指针 {代码...} 没有重载 {代码...} 函数...