 阮一峰 JavaScript 教程null,undefined 和布尔值 数值 字符串 对象 函数 数组 运算符 算术运算符 比较运算符 布尔运算符 二进制位运算符 其他运算符,运算顺序 语法专题 数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标准库 Object 对象 属性描述对象 Array 对象 包装对象 Boolean 对象 - 1 - 本文档使用 书栈(BookStack 书栈(BookStack.CN) 构建 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 - 9 - 本文档使用 书栈(BookStack.CN) 构建 从语法角度看,JavaScript 语言是一种“对象模型”语言。各种宿主 环境通过这个模型,描述自己的功能和操作接口,从而通过 JavaScript 控制这些功能。但是,JavaScript 并不是纯粹的“面 向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎 任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程0 码力 | 540 页 | 3.32 MB | 10 月前3 阮一峰 JavaScript 教程null,undefined 和布尔值 数值 字符串 对象 函数 数组 运算符 算术运算符 比较运算符 布尔运算符 二进制位运算符 其他运算符,运算顺序 语法专题 数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标准库 Object 对象 属性描述对象 Array 对象 包装对象 Boolean 对象 - 1 - 本文档使用 书栈(BookStack 书栈(BookStack.CN) 构建 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 - 9 - 本文档使用 书栈(BookStack.CN) 构建 从语法角度看,JavaScript 语言是一种“对象模型”语言。各种宿主 环境通过这个模型,描述自己的功能和操作接口,从而通过 JavaScript 控制这些功能。但是,JavaScript 并不是纯粹的“面 向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎 任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程0 码力 | 540 页 | 3.32 MB | 10 月前3
 阮一峰 《ECMAScript 6入门》 第三版ECMAScript 6简介 let 和 const 命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class map, ast } // Babel AST转码 babel.transformFromAst(ast, code, options); // => { code, map, ast } 配置对象 options ,可以参看官方文档http://babeljs.io/docs/usage/options/。 下面是一个例子。 var es6Code = 'let x = n => n + 代码,第二个参数是转换的配置对象。 ECMAScript 6简介 16 babel-polyfill Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比 如 Iterator 、 Generator 、 Set 、 Maps 、 Proxy 、 Reflect 、 Symbol 、 Promise 等全局对象,以及一些定义在全局对象上的方法(比0 码力 | 679 页 | 2.66 MB | 1 年前3 阮一峰 《ECMAScript 6入门》 第三版ECMAScript 6简介 let 和 const 命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class map, ast } // Babel AST转码 babel.transformFromAst(ast, code, options); // => { code, map, ast } 配置对象 options ,可以参看官方文档http://babeljs.io/docs/usage/options/。 下面是一个例子。 var es6Code = 'let x = n => n + 代码,第二个参数是转换的配置对象。 ECMAScript 6简介 16 babel-polyfill Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比 如 Iterator 、 Generator 、 Set 、 Maps 、 Proxy 、 Reflect 、 Symbol 、 Promise 等全局对象,以及一些定义在全局对象上的方法(比0 码力 | 679 页 | 2.66 MB | 1 年前3
 廖雪峰JavaScript教程4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 3.4.2 filter 3.4.3 sort 3.5 闭包 3.6 箭头函数 3.7 generator 4 标准对象 4.1 Date Date 4.2 RegExp 4.3 JSON 5 面向对象编程 5.1 创建对象 5.2 原型继承 6 浏览器 6.1 浏览器对象 6.2 操作DOM 6.2.1 更新DOM 6.2.2 插入DOM - 2 - 本文档使用 书栈(BookStack.CN) 构建 6.2.3 删除DOM 6.3 操作表单 6.4 操作文件 6.5 AJAX 6.6 Promise 6.7 索引超出了范围,返回undefined JavaScript的对象是一组由键-值组成的无序集合,例如: 1. var person = { 2. name: 'Bob', 3. age: 20, 4. tags: ['js', 'web', 'mobile'], 5. city: 'Beijing', 数组 对象 2.2 数据类型和变量 - 19 - 本文档使用0 码力 | 264 页 | 2.81 MB | 10 月前3 廖雪峰JavaScript教程4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 3.4.2 filter 3.4.3 sort 3.5 闭包 3.6 箭头函数 3.7 generator 4 标准对象 4.1 Date Date 4.2 RegExp 4.3 JSON 5 面向对象编程 5.1 创建对象 5.2 原型继承 6 浏览器 6.1 浏览器对象 6.2 操作DOM 6.2.1 更新DOM 6.2.2 插入DOM - 2 - 本文档使用 书栈(BookStack.CN) 构建 6.2.3 删除DOM 6.3 操作表单 6.4 操作文件 6.5 AJAX 6.6 Promise 6.7 索引超出了范围,返回undefined JavaScript的对象是一组由键-值组成的无序集合,例如: 1. var person = { 2. name: 'Bob', 3. age: 20, 4. tags: ['js', 'web', 'mobile'], 5. city: 'Beijing', 数组 对象 2.2 数据类型和变量 - 19 - 本文档使用0 码力 | 264 页 | 2.81 MB | 10 月前3
 JavaScript 正则表达式迷你书 老姚 - v1.11. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.11. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
 JavaScript 正则表达式迷你书 老姚 - v1.01. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.01. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
 2019-2021 美团技术年货 前端篇与设备 自身能力相关的问题,即: 4 > 2021年美团技术年货 (1) 如何监听设备的 VSync 信号并通知 Flutter 引擎? (2) OpenGL/Vulkan 用于上 屏的窗口对象从何而来? VSync 信号的监听及传递 在 Flutter 引擎的 Android 实现中,设备的 VSync 信号通过 Choreographer 触发, 它产生及消费流程如下图所示: Flutter 引擎的图形渲染提供 用于上屏的窗口对象。同样,我们参考 Flutter for Android 的实现,看一下 Android 系统是怎么做的: Flutter 在 Android 上支持 Vulkan 和 OpenGL 两种渲染引擎,篇幅原因我们只关注 OpenGL。抛开复杂的注册及调用细节,本质上整个流程主要做了三件事: ● 创建了一个视图对象,提供可用于直接绘制的 Surface,将它通过 前端 < 7 ● 在原生侧获取 Surface 关联的本地窗口对象,并交给 Flutter 的平台容器; ● 将本地窗口对象转换为 OpenGL ES 可识别的绘图表面(EGLSurface),用 于 Flutter 引擎的渲染上屏。 接下来我们用鸿蒙提供的平台能力实现这三点。 a. 可用于直接绘制的视图对象 鸿蒙系统的 UI 框架提供了很多常用视图组件(Component),比如按钮、文字、图0 码力 | 738 页 | 50.29 MB | 1 年前3 2019-2021 美团技术年货 前端篇与设备 自身能力相关的问题,即: 4 > 2021年美团技术年货 (1) 如何监听设备的 VSync 信号并通知 Flutter 引擎? (2) OpenGL/Vulkan 用于上 屏的窗口对象从何而来? VSync 信号的监听及传递 在 Flutter 引擎的 Android 实现中,设备的 VSync 信号通过 Choreographer 触发, 它产生及消费流程如下图所示: Flutter 引擎的图形渲染提供 用于上屏的窗口对象。同样,我们参考 Flutter for Android 的实现,看一下 Android 系统是怎么做的: Flutter 在 Android 上支持 Vulkan 和 OpenGL 两种渲染引擎,篇幅原因我们只关注 OpenGL。抛开复杂的注册及调用细节,本质上整个流程主要做了三件事: ● 创建了一个视图对象,提供可用于直接绘制的 Surface,将它通过 前端 < 7 ● 在原生侧获取 Surface 关联的本地窗口对象,并交给 Flutter 的平台容器; ● 将本地窗口对象转换为 OpenGL ES 可识别的绘图表面(EGLSurface),用 于 Flutter 引擎的渲染上屏。 接下来我们用鸿蒙提供的平台能力实现这三点。 a. 可用于直接绘制的视图对象 鸿蒙系统的 UI 框架提供了很多常用视图组件(Component),比如按钮、文字、图0 码力 | 738 页 | 50.29 MB | 1 年前3
 ECMAScript规范 第三版 中文版........................................................................................10 4.2.1 对象................................................................................................... .........................................................................................12 4.3.3 对象................................................................................................... .....................12 4.3.6 本地对象.....................................................................................................................12 4.3.7 内置对象..................................0 码力 | 58 页 | 563.06 KB | 1 年前3 ECMAScript规范 第三版 中文版........................................................................................10 4.2.1 对象................................................................................................... .........................................................................................12 4.3.3 对象................................................................................................... .....................12 4.3.6 本地对象.....................................................................................................................12 4.3.7 内置对象..................................0 码力 | 58 页 | 563.06 KB | 1 年前3
 Hello 算法 1.2.0 简体中文 JavaScript 版。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 379 页 | 18.47 MB | 10 月前3 Hello 算法 1.2.0 简体中文 JavaScript 版。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 379 页 | 18.47 MB | 10 月前3
 Hello 算法 1.0.0b5 JavaScript版Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等 语言。 ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若您是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么这本书正是为您量身定制! 如果您已经积累一定刷题量,熟悉大部分题型,那么 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 375 页 | 30.68 MB | 1 年前3 Hello 算法 1.0.0b5 JavaScript版Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等 语言。 ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若您是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么这本书正是为您量身定制! 如果您已经积累一定刷题量,熟悉大部分题型,那么 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 375 页 | 30.68 MB | 1 年前3
 Hello 算法 1.1.0 JavaScript版JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 379 页 | 18.46 MB | 1 年前3 Hello 算法 1.1.0 JavaScript版JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 输入空间:用于存储算法的输入数据。 ‧ 暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。 ‧ 输出空间:用于存储算法的输出数据。 一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。 暂存空间可以进一步划分为三个部分。 ‧ 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ‧ 栈帧空间:用于保存调用函数的上下文数据。系统在每次调用函数时都会在栈顶部创建一个栈帧,函数 暂存数据(变量) const node = new Node(0); // 暂存数据(对象) const c = constFunc(); // 栈帧空间(调用函数) return a + b + c; // 输出数据 } 2.4.2 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“操作数量”转为“使用空间大小”。 而与时间复杂度不同的是,我们通常只关注最差空间复0 码力 | 379 页 | 18.46 MB | 1 年前3
共 20 条
- 1
- 2













