阮一峰 JavaScript 教程构建 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 语言,包括将值分成原始值和对象两大 历史 - 19 - 本文档使用 书栈(BookStack.CN) 构建 类。 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一 等公民,并引入闭包。 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。 正则表达式:借鉴 Perl 语言。 字符串和数组处理:借鉴 Python 语言。 为了保持简单,这种脚本语言缺少一些关键的功能,比如块级作用域、 JavaScript。基本上,JavaScript 这个名 字的原意是“很像Java的脚本语言”。 JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型 对象(prototype)的继承链。这是它与 Java 语法最大的两点区 别。JavaScript 语法要比 Java 自由得多。 另外,Java 语言需要编译,而 JavaScript 语言则是运行时由解释 器直接执行。0 码力 | 540 页 | 3.32 MB | 10 月前3
阮一峰 《ECMAScript 6入门》 第三版Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 Decorator Module 的语法 Module 的加载实现 编程风格 读懂规格 ArrayBuffer 2 1.28 2.1 2.2 2.3 参考链接 其他 源码 巨大的成功,在业界得到广泛支持,成为通行标准,奠定了 JavaScript 语言的基本 语法,以后的版本完全继承。直到今天,初学者一开始学习 JavaScript,其实就是 在学3.0版的语法。 2000年,ECMAScript 4.0 开始酝酿。这个版本最后没有通过,但是它的大部分内 容被 ES6 继承了。因此,ES6 制定的起点其实是2000年。 为什么 ES4 没有通过呢?因为这个版本太激进了,对 被 Object.assign 拷贝的。只有字符串的包装对象,会产生可枚举的实义属性, 那些属性则会被拷贝。 Object.assign 拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承 属性),也不拷贝不可枚举的属性( enumerable: false )。 Object.assign({b: 'c'}, Object.defineProperty({}, 'invisible'0 码力 | 679 页 | 2.66 MB | 1 年前3
廖雪峰JavaScript教程3.5 闭包 3.6 箭头函数 3.7 generator 4 标准对象 4.1 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 的,它可能 是 xiaoming 继承得到的: 1. 'toString' in xiaoming; // true 因为 toString 定义在 object 对象中,而所有对象最终都会在原型链上指向 object ,所 以 xiaoming 也拥有 toString 属性。 要判断一个属性是否是 xiaoming 自身拥有的,而不是继承得到的,可以用 hasOwnProperty() 2.7 循环 - 39 - 本文档使用 书栈(BookStack.CN) 构建 7. alert(key); // 'name', 'age', 'city' 8. } 要过滤掉对象继承的属性,用 hasOwnProperty() 来实现: 1. var o = { 2. name: 'Jack', 3. age: 20, 4. city: 'Beijing'0 码力 | 264 页 | 2.81 MB | 10 月前3
ECMAScript规范 第三版 中文版对象 分配 存 储,然后通过赋初始值来初始化对象属性的全部或部分。所有的构造函数都是对象,但并非所 有的对象都是构造函数。每个构造函数都有一个 Prototype(原 型)属性,被用于实现基于原 型继承(prototype-based inheritance)和共 享属性(shared properties)。使用构造函数来创建对 象要用到 new(新 建)表达句;举个例子,new String("A 创建了一个新的字 符串对象。不使用 new 调用构造函数的后果取决于这个构造函数本身。举个例子, String("A String") 产生一个原语字符串而非对象。 ECMAScript 支持基于原型继承。每一个构造函数都有一个相关联的原型,它创建的所有 对象都拥有一个隐含的引用指向那个与其构造函数相关联的原型(所谓的对象的原型)。更深 一步讲,原型还可能会拥有 到它的原型的隐含的非空引用,依此类推;这被称为原型链 个对象包含同名属性,被引用指向的就是这个属性;如果那个对象并没有包含 同名属性,接下来检查它的原型,如此继续下去。 通常,在基于类的面向对象语言中,实例装载状态,类装载方法,且继承的仅仅是结构和 行为。而在 ECMAScript 中,状态和方法均由对象装载,且结构、行为、状态都会被继承。 所有没有直接包含某个它们的原型所包含的特定属性的对象,与它们的原型共享那个属性 和它的值。下面的图表阐述了一切: CF 是一个构造函数(当然也是一个对象)。使用0 码力 | 58 页 | 563.06 KB | 1 年前3
JavaScript Promise迷你书(中文版)reject(new Error(req.statusText)); ,创建一个Error对象后再将具体 的值传进去。 传给 reject 的参数也没有什么特殊的限制,一般只要是Error对象(或者 继承自Error对象)就可以。 JavaScript Promise 迷你书(中文版) 12 传给 reject 的参数,其中一般是包含了reject原因的Error对象。 本次因为状态值不等于 JavaScript Promise 迷你书(中文版) 16 jQuery和thenable jQuery.ajax()18的返回值是一个具有 .then 方法的 jqXHR Object19对 象,这个对象继承了来自 Deferred Object20 的方法和属性。 但是Deferred Object并没有遵循Promises/A+或ES6 Promises标准,所 以即使看上去这个对象转换成了一个promise对象,但是会出现缺失 但是由于stack trace等原因我们不能完美的创建一个继承自 Error 的类,不过在这里我 们的目的只是为了和Error有所区别,我们将创建一个 TimeoutError 类来实现我们的 目的。 在ECMAScript6中可以使用 class 语法来定义类之间的继承关系。 class MyError extends Error{ // 继承了Error类的对象 } 为了让我们的 TimeoutError0 码力 | 112 页 | 1010.02 KB | 1 年前3
2019-2021 美团技术年货 前端篇镜像定制和发布的详细流程见官方文档,本文不再 赘述。其中用于定制 Flutter Web 镜像的 Dockerfile 文件如下: 30 > 2021年美团技术年货 FROM $BaseImage \# 继承基础镜像 RUN apt-get update RUN apt-get install rubygems -y RUN gem install flutter-cli RUN flutter-cli ● MRN 容器插件:@r2x/plugin-container-mrn。 ● Titans 容器插件:@r2x/plugin-container-h5。 除了扩展新的容器平台,我们还可以通过继承现有的容器插件,来编写一些特殊的定 制化功能插件。 1. 对代码进行预处理 基于开放式插件能力,我们可以像 Babel 插件一样,通过对 AST 语法的修改对代码 源文件进行编译前后的修改。 至此,我们应该了解了 Target 内部是如何寻找 Swift 方法声明的了。 第二步 - 如何找到 Objective-C 组件里的方法声明 回到第一段代码中,我们可以看到 PetViewController 是继承自 UIViewController, 而这也意味着我们的代码会与 Objective-C 代码进行交互,因为大部分系统库,例 如 UIKit 等,还是使用 Objective-C 编写的。 在这个问题上,Swift0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版成内存空间的 浪费。 为了解决此问题,诞生了一种被称为「列表 List」的数据结构。列表可以被理解为长度可变的数组,因此也常 被称为「动态数组 Dynamic Array」。列表基于数组实现,继承了数组的优点,同时还可以在程序运行中实时 4. 数组与链表 hello‑algo.com 53 扩容。在列表中,我们可以自由地添加元素,而不用担心超过容量限制。 4.3.1. 列表常用操作0 码力 | 185 页 | 14.70 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版存储多少数据,从而难以选择合适的列表长度。若长度过小,则很可能无法满足使用需求;若长度过大,则 会造成内存空间浪费。 为解决此问题,我们可以使用动态数组(dynamic array)来实现列表。它继承了数组的各项优点,并且可以 在程序运行过程中进行动态扩容。 实际上,许多编程语言中的标准库提供的列表是基于动态数组实现的,例如 Python 中的 list 、Java 中的 ArrayList0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版存储多少数据,从而难以选择合适的列表长度。若长度过小,则很可能无法满足使用需求;若长度过大,则 会造成内存空间浪费。 为解决此问题,我们可以使用动态数组(dynamic array)来实现列表。它继承了数组的各项优点,并且可以 在程序运行过程中进行动态扩容。 实际上,许多编程语言中的标准库提供的列表是基于动态数组实现的,例如 Python 中的 list 、Java 中的 ArrayList0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版数组;若长度过大,则会造成内存空间的浪费。 为解决此问题,出现了一种被称为「动态数组 dynamic array」的数据结构,即长度可变的数组,也常被称 为「列表 list」。列表基于数组实现,继承了数组的优点,并且可以在程序运行过程中动态扩容。我们可以在 列表中自由地添加元素,而无须担心超过容量限制。 4.3.1 列表常用操作 1. 初始化列表 我们通常使用“无初始值”和“有初始值”这两种初始化方法。0 码力 | 375 页 | 30.68 MB | 1 年前3
共 11 条
- 1
- 2













