阮一峰 《ECMAScript 6入门》 第三版用于静态检查代码的语法和风格,安装命令如下。 $ npm install --save-dev eslint babel-eslint ECMAScript 6简介 18 然后,在项目根目录下,新建一个配置文件 .eslintrc ,在其中加入 parser 字 段。 { "parser": "babel-eslint", "rules": { ... } 有时,我们希望重新使用同一个Symbol值, Symbol.for 方法可以做到这一点。 它接受一个字符串作为参数,然后搜索有没有以该参数作为名称的Symbol值。如果 有,就返回这个Symbol值,否则就新建并返回一个以该字符串为名称的Symbol 值。 Symbol 236 var s1 = Symbol.for('foo'); var s2 = Symbol.for('foo'); s1 是,前者会被登记在全局环境中供搜索,后者不会。 Symbol.for() 不会每次调 用就返回一个新的 Symbol 类型的值,而是会先检查给定的 key 是否已经存在, 如果不存在才会新建一个值。比如,如果你调用 Symbol.for("cat") 30次,每次 都会返回同一个 Symbol 值,但是调用 Symbol("cat") 30次,会返回30个不同的 Symbol值。0 码力 | 679 页 | 2.66 MB | 1 年前3
2019-2021 美团技术年货 前端篇进 行介绍。 1. 渲染流程打通 我们再来回顾一下 Flutter 的图像渲染流程。如图所示,设备发起垂直同步(VSync) 信号之后,先经过 UI 线程的渲染管线(Animate/Build/Layout/Paint),再经过 Raster 线程的组合和栅格化,最终通过 OpenGL 或 Vulkan 将图像上屏。这个流程 的大部分工作都由框架层和引擎层完成,对于鸿蒙的适配,我们主要关注的是与设备 出现不符合预期的问题。 3. 制定 RN 组件适配与小程序接入方案 明确需求同步范围评估工作后,需完成以下技术评估工作:(1)明确需求是否需要新 建复用组件还是在原有的复用组件上进行迭代。如需新建复用组件 NPM 包,需根据 组件复用规范进行技术选型,确定使用“组件 + 逻辑复用模式”、“页面模式”还是 “组件模式”,并制定相应的复用组件接口协议;(2)明确该需求是否需要开发 RN- 小 对于异步操作,JavaScript API 提供了 fibers 延长 contex 的 lifeTime var async = require('sketch/async') // 直接在 Sketch 中提供图像或文本数据,DataSupplier 直接与 Sketch 用户界面集成。 var DataSupplier = require('sketch/data-supplier') // 无需重新 build0 码力 | 738 页 | 50.29 MB | 1 年前3
阮一峰 JavaScript 教程Perl 5 建立的。 新建正则表达式有两种方法。一种是使用字面量,以斜杠表示开始和结 束。 1. var regex = /xyz/; 另一种是使用 RegExp 构造函数。 1. var regex = new RegExp('xyz'); 上面两种写法是等价的,都新建了一个内容为 xyz 的正则表达式对 象。它们的主要区别是,第一种方法在引擎编译代码时,就会新建正则 表达式,第二 表达式,第二种方法在运行时新建正则表达式,所以前者的效率较高。 而且,前者比较便利和直观,所以实际应用中,基本上都采用字面量定 义正则表达式。 RegExp 构造函数还可以接受第二个参数,表示修饰符(详细解释见下 文)。 1. var regex = new RegExp('xyz', 'i'); 2. // 等价于 3. var regex = /xyz/i; 概述 RegExp 对象 上面代码中, cat1 和 cat2 是同一个构造函数的两个实例,它们都具 有 meow 方法。由于 meow 方法是生成在每个实例对象上面,所以两个 实例就生成了两次。也就是说,每新建一个实例,就会新建一 个 meow 方法。这既没有必要,又浪费系统资源,因为所有 meow 方法 都是同样的行为,完全应该共享。 这个问题的解决方法,就是 JavaScript 的原型对象 (prototype)。0 码力 | 540 页 | 3.32 MB | 10 月前3
ECMAScript规范 第三版 中文版es,以及输入/输出功能的对 象。 深入说来,主机环境提供了一套向事件上附加脚本代码的方法,这些事件有焦点的改变,页面 和图像的载入、卸载,出错和异常终止,点选,提交表单以及鼠标 动作等。脚本代码在 HTML 之间出现,被显示的页面是一个用户界面元素和固定或处理后的文本和图像的组合。这种脚本 语言会响应用户的互交从而不需要主程序。 与浏览器不同,网页服务器为服务器端提供了另一种宿主环境,这包括代表请求、客户端、0 码力 | 58 页 | 563.06 KB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版nums[random_index]; return random_num; } 4.1.2. 数组缺点 数组在初始化后长度不可变。由于系统无法保证数组之后的内存空间是可用的,因此数组长度无法扩展。而若 希望扩容数组,则需新建一个数组,然后把原数组元素依次拷贝到新数组,在数组很大的情况下,这是非常耗 时的。 4. 数组与链表 hello‑algo.com 45 // === File: array.js === /* + 1]; } // 更新元素数量 this.#size--; // 返回被删除元素 return num; } /* 列表扩容 */ extendCapacity() { // 新建一个长度为 size 的数组,并将原数组拷贝到新数组 this.#nums = this.#nums.concat( new Array(this.capacity() * (this.#extendRatio change”按钮;页面跳转后,点击“Create pull request”按钮发起拉取请求即可。 12. 附录 hello‑algo.com 180 Figure 12‑1. 页面编辑按键 图片无法直接修改,需要通过新建 Issue 或评论留言来描述图片问题,我会第一时间重新画图并替换图片。 12.2.2. 内容创作 如果您想要参与本开源项目,包括翻译代码至其他编程语言、拓展文章内容等,那么需要实施 Pull Request0 码力 | 185 页 | 14.70 MB | 1 年前3
廖雪峰JavaScript教程HTML5的File API提供了 File 和 FileReader 两个主要对象,可以获得文件信息并读取文件。 下面的例子演示了如何读取用户选取的图片文件,并在一个 <div> 中预览图像: 1. var 2. fileInput = document.getElementById('test-image-file'), 3. info = document.g 上面的代码演示了如何通过HTML5的File API读取文件内容。以DataURL的形式读取到的文件是一个 字符串,类似于 data:image/jpeg;base64,/9j/4AAQSk…(base64编码)… ,常用于设置图像。如果需 要服务器端处理,把字符串 base64, 后面的字符发送给服务器并用Base64解码就可以得到原始文件 的二进制内容。 上面的代码还演示了JavaScript的一个重要的特性就是单0 码力 | 264 页 | 2.81 MB | 10 月前3
Hello 算法 1.1.0 JavaScript版-1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次复制到新数组。这是一个 ?(?) 的操作,在数组很大的情况下非常耗时。代码如下所示: // === File: array.js === /* 扩展数组长度 + 1]; } // 更新元素数量 this.#size--; // 返回被删除的元素 return num; } /* 列表扩容 */ extendCapacity() { // 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组复制到新数组 this.#arr = this.#arr.concat( new Array(this.capacity() * (this 在页面底部填写修改说明,然后点击“Propose file change”按钮。页面跳转后,点击“Create pull request”按钮即可发起拉取请求。 图 16‑3 页面编辑按键 图片无法直接修改,需要通过新建 Issue 或评论留言来描述问题,我们会尽快重新绘制并替换图片。 2. 内容创作 如果您有兴趣参与此开源项目,包括将代码翻译成其他编程语言、扩展文章内容等,那么需要实施以下 Pull Request0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版-1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次复制到新数组。这是一个 ?(?) 的操作,在数组很大的情况下非常耗时。代码如下所示: // === File: array.js === /* 扩展数组长度 + 1]; } // 更新元素数量 this.#size--; // 返回被删除的元素 return num; } /* 列表扩容 */ extendCapacity() { // 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组复制到新数组 this.#arr = this.#arr.concat( new Array(this.capacity() * (this 在页面底部填写修改说明,然后点击“Propose file change”按钮。页面跳转后,点击“Create pull request”按钮即可发起拉取请求。 图 16‑3 页面编辑按键 图片无法直接修改,需要通过新建 Issue 或评论留言来描述问题,我们会尽快重新绘制并替换图片。 第 16 章 附录 www.hello‑algo.com 367 2. 内容创作 如果您有兴趣参与此开源项目,包括将代码翻译0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版-1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次拷贝到新数组。这是一个 ?(?) 的操作,在数组很大的情况下是非常耗时的。 // === File: array.js === /* 扩展数组长度 */ // com 79 } // 更新元素数量 this.#size--; // 返回被删除元素 return num; } /* 列表扩容 */ extendCapacity() { // 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组 this.#nums = this.#nums.concat( new Array(this.capacity() * change”按钮。页面跳转后,点击“Create pull request”按钮即可发起拉取请求。 第 16 章 附录 hello‑algo.com 369 图 16‑1 页面编辑按键 图片无法直接修改,需要通过新建 Issue 或评论留言来描述问题,我们会尽快重新绘制并替换图片。 2. 内容创作 如果您有兴趣参与此开源项目,包括将代码翻译成其他编程语言、扩展文章内容等,那么需要实施以下 Pull Request0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版-1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次复制到新数组。这是一个 ?(?) 的操作,在数组很大的情况下非常耗时。代码如下所示: // === File: array.js === /* 扩展数组长度 + 1]; } // 更新元素数量 this.#size--; // 返回被删除的元素 return num; } /* 列表扩容 */ extendCapacity() { // 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组复制到新数组 this.#arr = this.#arr.concat( new Array(this.capacity() * (this 在页面底部填写修改说明,然后点击“Propose file change”按钮。页面跳转后,点击“Create pull request”按钮即可发起拉取请求。 图 16‑3 页面编辑按键 图片无法直接修改,需要通过新建 Issue 或评论留言来描述问题,我们会尽快重新绘制并替换图片。 2. 内容创作 如果您有兴趣参与此开源项目,包括将代码翻译成其他编程语言、扩展文章内容等,那么需要实施以下 Pull Request0 码力 | 376 页 | 17.57 MB | 1 年前3
共 13 条
- 1
- 2













