阮一峰 JavaScript 教程目 录 致谢 介绍 前言 入门篇 导论 历史 基本语法 数据类型 概述 null,undefined 和布尔值 数值 字符串 对象 函数 数组 运算符 算术运算符 比较运算符 布尔运算符 二进制位运算符 其他运算符,运算顺序 语法专题 数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标准库 Object 对象 属性描述对象 语言是一种“对象模型”语言。各种宿主 环境通过这个模型,描述自己的功能和操作接口,从而通过 JavaScript 控制这些功能。但是,JavaScript 并不是纯粹的“面 向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎 任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程 中,你会诧异于 JavaScript 语法的灵活性。 JavaScript 的核心语法部分相当精简,只包括两个部分:基本的语 还是值得学习,况且它的 入门真的不难。 JavaScript 的性能优势体现在以下方面。 (1)灵活的语法,表达力强。 JavaScript 既支持类似 C 语言清晰的过程式编程,也支持灵活的 函数式编程,可以用来写并发处理(concurrent)。这些语法特性已 经被证明非常强大,可以用于许多场合,尤其适用异步编程。 JavaScript 的所有值都是对象,这为程序员提供了灵活性和便利0 码力 | 540 页 | 3.32 MB | 10 月前3
阮一峰 《ECMAScript 6入门》 第三版const 命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class => item + 1); // 转码后 input.map(function (item) { return item + 1; }); 上面的原始代码用了箭头函数,Babel 将其转为普通函数,就能在不支持箭头函数 的 JavaScript 环境执行了。 配置文件 .babelrc Babel 的配置文件是 .babelrc ,存放在项目的根目录下。使用 Babel 的第一步, babel-core --save ECMAScript 6简介 15 然后,在项目中就可以调用 babel-core 。 var babel = require('babel-core'); // 字符串转码 babel.transform('code();', options); // => { code, map, ast } // 文件转码(异步) babel.transformFile('filename0 码力 | 679 页 | 2.66 MB | 1 年前3
ECMAScript规范 第三版 中文版.......................................................................................12 4.3.4 构造函数................................................................................................... .......................................................................................13 4.3.16 字符串值.................................................................................................. 词法文法和正则表达式文法.....................................................................................15 5.1.3 数字化字符串文法.................................................................................................0 码力 | 58 页 | 563.06 KB | 1 年前3
廖雪峰JavaScript教程数据类型和变量 2.3 字符串 2.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 义,导致运行结果与期望不一致。 在本教程中,我们不会省略 ; ,所有语句都会添加 ; 。 例如,下面的一行代码就是一个完整的赋值语句: 1. var x = 1; 下面的一行代码是一个字符串,但仍然可以视为一个完整的语句: 1. 'Hello, world'; 下面的一行代码包含两个语句,每个语句用 ; 表示语句结束: 1. var x = 1; var y = 2; // 不建议一行写多个语句 z = 5; 10. } 11. } JavaScript本身对嵌套的层级没有限制,但是过多的嵌套无疑会大大增加看懂代码的难度。遇到这种 情况,需要把部分代码抽出来,作为函数来调用,这样可以减少代码的复杂度。 以 // 开头直到行末的字符被视为行注释,注释是给开发人员看到,JavaScript引擎会自动忽略: 1. // 这是一行注释 2. alert('hello');0 码力 | 264 页 | 2.81 MB | 10 月前3
[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 一致的。ECMAScript 语法区分大小写的规定适用于变量、函数名、运算符及其他一切代码。 比如变量 id 与 Id 是不同的;同样,函数 getElementById()与 getElementbyID()也是不同的,而 且 getElementbyID()是无效函数。 2.1.3 代码换行 ECMAScript 语法规定可以在文本字符串中使用反斜杠(\)对代码行进行换行。例如,下 面的代码是可以正确解析的。 面的代码是可以正确解析的。 document.write("Hello \ EcmaScript!"); 不过需要注意的是,代码换行限于文本字符串中。如果将上面的代码改写成下面的形式, 代码是无法正确解析的。 document.write \ ("Hello EcmaScript!"); 2.1.4 代码中的空格 ECMAScript 语法规定会忽略多余的空格。因此,依据这个特点可以通过添加空格对代码 write("Hello EcmaScript!"); // 向浏览器输出字符串"Hello EcmaScript!" 22 15 天学会 JavaScript(视频教学版) 2. ECMAScript 代码多行注释 多行注释以“/*”开头、并以“*/”结束,例如: /* * 向浏览器输出字符串"Hello EcmaScript!" */ document.write("Hello0 码力 | 52 页 | 3.83 MB | 1 年前3
JavaScript 正则表达式迷你书 老姚 - v1.13.5. 相关案例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.5.1. 字符串 trim 方法模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.5.2. 将每个单词的首字母转换为大写 . 5.2. 注意要点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.1 匹配字符串整体问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.2 量词连缀问题. . . . . . . 7.2.7. replace 是很强大的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.2.8. 使用构造函数需要注意的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 7.2.9. 修饰符 . . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
JavaScript 正则表达式迷你书 老姚 - v1.03.5. 相关案例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.5.1. 字符串 trim 方法模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.5.2. 将每个单词的首字母转换为大写 . 5.2. 注意要点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.1 匹配字符串整体问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.2 量词连缀问题. . . . . . . 7.2.7. replace 是很强大的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.2.8. 使用构造函数需要注意的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 7.2.9. 修饰符 . . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 www.hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。 ‧ 但如果学过算法,我们就会知道内置排序函数的时间复杂度是 ?(? log ?) ;而如果给定的数据是固定 位数的整数(例如学号),那么我们就可以0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?0 码力 | 379 页 | 18.46 MB | 1 年前3
共 18 条
- 1
- 2













