ES6標準入門(第二版)pdf

下載地址:網盤下載




內容簡介??·?·?·?·?·?·

作者簡介??·?·?·?·?·?·

阮一峰:著名技術博客作者,JavaScript專家。專注于網站開發技術,超過十年。暢銷書《黑客與畫家》《軟件隨想錄》的譯者。

目錄??·?·?·?·?·?·

第1章 ECMAScript 6簡介 001
1.1 ECMAScript和JavaScript的關系 001
1.2 ECMAScript的歷史 001
1.3 部署進度 002
1.4 Babel轉碼器 003
命令行環境 004
瀏覽器環境 005
Node.js環境 005
在線轉換 006
1.5 Traceur轉碼器 006
直接插入網頁 006
在線轉換 007
命令行轉換 008
Node.js環境的用法 008
1.6 ECMAScript 7 009
第2章 let和const命令 010
2.1 let命令 010
基本用法 010
不存在變量提升 011
暫時性死區 011
不允許重復聲明 012
2.2 塊級作用域 013
為什么需要塊級作用域 013
ES6的塊級作用域 013
2.3 const命令 015
2.4 跨模塊常量 016
2.5 全局對象的屬性 017
第3章 變量的解構賦值 018
3.1 數組的解構賦值 018
基本用法 018
默認值 020
3.2 對象的解構賦值 021
3.3 字符串的解構賦值 024
3.4 數值和布爾值的解構賦值 024
3.5 函數參數的解構賦值 024
3.6 圓括號問題 025
不能使用圓括號的情況 025
可以使用圓括號的情況 026
3.7 用途 026
第4章 字符串的擴展 029
4.1 字符的Unicode表示法 029
4.2 codePointAt() 030
4.3 String.fromCodePoint() 031
4.4 字符串的遍歷器接口 031
4.5 at() 032
4.6 normalize() 032
4.7 includes(),startsWith(),endsWith() 033
4.8 repeat() 033
4.9 padStart(),padEnd() 034
4.10 模板字符串 034
4.11 實例:模板編譯 037
4.12 標簽模板 038
4.13 String.raw() 042
第5章 正則的擴展 043
5.1 RegExp 構造函數 043
5.2 字符串的正則方法 043
5.3 u 修飾符 043
5.4 y 修飾符 045
5.5 sticky 屬性 047
5.6 flags 屬性 048
5.7 RegExp.escape() 048
第6章 數值的擴展 049
6.1 二進制和八進制數值表示法 049
6.2 Number.isFinite(), Number.isNaN() 049
6.3 Number.parseInt(), Number.parseFloat() 051
6.4 Number.isInteger() 051
6.5 Number.EPSILON 051
6.6 安全整數和Number.isSafeInteger() 052
6.7 Math 對象的擴展 054
Math.trunc() 054
Math.sign() 054
Math.cbrt() 055
Math.clz32() 055
Math.imul() 056
Math.fround() 056
Math.hypot() 057
對數方法 057
三角函數方法 058
6.8 指數運算符 058
第7章 數組的擴展 059
7.1 Array.from() 059
7.2 Array.of() 061
7.3 數組實例的copyWithin() 062
7.4 數組實例的find() 和findIndex() 063
7.5 數組實例的fill() 063
7.6 數組實例的entries()、keys() 和values() 064
7.7 數組實例的includes() 064
7.8 數組的空位 065
7.9 數組推導 067
第8章 函數的擴展 069
8.1 函數參數的默認值 069
基本用法 069
與解構賦值默認值結合使用 070
參數默認值的位置 071
函數的length 屬性 072
作用域 073
應用 074
8.2 rest 參數 074
8.3 擴展運算符 075
含義 075
替代數組的apply 方法 076
擴展運算符的應用 077
8.4 name 屬性 079
8.5 箭頭函數 080
基本用法 080
使用注意點 081
嵌套的箭頭函數 083
8.6 函數綁定 084
8.7 尾調用優化 085
什么是尾調用 085
尾調用優化 086
尾遞歸 087
遞歸函數的改寫 088
8.8 函數參數的尾逗號 089
第9章 對象的擴展 090
9.1 屬性的簡潔表示法 090
9.2 屬性名表達式 092
9.3 方法的name 屬性 093
9.4 Object.is() 094
9.5 Object.assign() 095
9.6 屬性的可枚舉性 097
9.7 屬性的遍歷 098
9.8 __proto__ 屬性, Object.setPrototypeOf(), Object.getPrototypeOf() 099
9.9 對象的擴展運算符 101
第10 章 Symbol 103
10.1 概述 103
10.2 作為屬性名的Symbol 105
10.3 實例:消除魔術字符串 106
10.4 屬性名的遍歷 107
10.5 Symbol.for(),Symbol.keyFor() 109
10.6 內置的Symbol 值 110
Symbol.hasInstance 110
Symbol.isConcatSpreadable 110
Symbol.species 111
Symbol.match 111
Symbol.replace 112
Symbol.search 112
Symbol.split 112
Symbol.iterator 112
Symbol.toPrimitive 113
Symbol.toStringTag 113
Symbol.unscopables 114
第11 章 Proxy 和Reflect 116
11.1 Proxy 概述 116
11.2 Proxy 實例的方法 119
get() 119
set() 121
apply() 122
has() 123
construct() 123
deleteProperty() 124
defineProperty() 125
enumerate() 125
getOwnPropertyDescriptor() 126
getPrototypeOf() 126
isExtensible() 127
ownKeys() 127
preventExtensions() 128
setPrototypeOf() 128
11.3 Proxy.revocable() 129
11.4 Reflect 概述 129
11.5 Reflect 對象的方法 130
第12 章 二進制數組 133
12.1 ArrayBuffer 對象 134
概述 134
ArrayBuffer.prototype.byteLength 135
ArrayBuffer.prototype.slice() 135
ArrayBuffer.isView() 136
12.2 TypedArray 視圖 136
概述 136
構造函數 136
數組方法 138
字節序 140
BYTES_PER_ELEMENT 屬性 141
ArrayBuffer 與字符串的互相轉換 142
溢出 142
TypedArray.prototype.buffer 143
TypedArray.prototype.byteLength, TypedArray.prototype.byteOffset 143
TypedArray.prototype.length 143
TypedArray.prototype.set() 144
TypedArray.prototype.subarray() 144
TypedArray.prototype.slice() 144
TypedArray.of() 144
TypedArray.from() 145
12.3 復合視圖 145
12.4 DataView 視圖 146
12.5 二進制數組的應用 148
AJAX 148
Canvas 148
WebSocket 149
Fetch API 149
File API 149
第13 章 Set 和Map 數據結構 151
13.1 Set 151
基本用法 151
Set 實例的屬性和方法 152
遍歷操作 153
13.2 WeakSet 155
13.3 Map 157
Map 結構的目的和基本用法 157
實例的屬性和操作方法 159
遍歷方法 160
與其他數據結構的互相轉換 162
13.4 WeakMap 164
第14 章 Iterator 和for...of 循環 166
14.1 Iterator 的概念 166
14.2 數據結構的默認Iterator 接口 168
14.3 調用Iterator 接口的場合 172
14.4 字符串的Iterator 接口 173
14.5 Iterator 接口與Generator 函數 174
14.6 遍歷器對象的return()、throw() 175
14.7 for...of 循環 175
數組 175
Set 和Map 結構 177
計算生成的數據結構 177
類似數組的對象 178
對象 179
與其他遍歷語法的比較 180
第15 章 Generator 函數 181
15.1 簡介 181
基本概念 181
yield 語句 182
與Iterator 接口的關系 184
15.2 next 方法的參數 185
15.3 for...of 循環 187
15.4 Generator.prototype.throw() 189
15.5 Generator.prototype.return() 193
15.6 yield* 語句 194
15.7 作為對象屬性的Generator 函數 199
15.8 Generator 函數的this 200
15.9 Generator 函數推導 201
15.10 含義 202
Generator 與狀態機 202
Generator 與協程 202
15.11 應用 203
第16 章 Promise 對象 208
16.1 Promise 的含義 208
16.2 基本用法 208
16.3 Promise.prototype.then() 211
16.4 Promise.prototype.catch() 212
16.5 Promise.all() 215
16.6 Promise.race() 216
16.7 Promise.resolve() 216
16.8 Promise.reject() 217
16.9 兩個有用的附加方法 218
done() 218
finally() 218
16.10 應用 219
加載圖片 219
Generator 函數與Promise 的結合 219
16.11 async 函數 220
第17 章 異步操作和async 函數 221
17.1 基本概念 221
異步 221
回調函數 221
Promise 222
17.2 Generator 函數 223
協程 223
Generator 函數的概念 223
Generator 函數的數據交換和錯誤處理 224
異步任務的封裝 224
17.3 Thunk 函數 225
參數的求值策略 225
Thunk 函數的含義 226
JavaScript 語言的Thunk 函數 226
Thunkify 模塊 227
Generator 函數的流程管理 228
Thunk 函數的自動流程管理 229
17.4 co 模塊 230
基本用法 230
co 模塊的原理 230
基于Promise 對象的自動執行 231
co 模塊的源碼 232
處理并發的異步操作 233
17.5 async 函數 234
含義 234
async 函數的實現 235
async 函數的用法 236
注意點 236
與Promise、Generator 的比較 238
第18 章 Class 240
18.1 Class 基本語法 240
概述 240
constructor 方法 243
實例對象 243
name 屬性 244
Class 表達式 245
不存在變量提升 245
嚴格模式 246
18.2 Class 的繼承 246
基本用法 246
類的prototype 屬性和__proto__ 屬性 247
extends 的繼承目標 248
Object.getPrototypeOf() 249
super 關鍵字 249
實例的__proto__ 屬性 250
18.3 原生構造函數的繼承 250
18.4 Class 的取值函數(getter)和存值函數(setter) 253
18.5 Class 的Generator 方法 254
18.6 Class 的靜態方法 254
18.7 Class 的靜態屬性 255
18.8 new.target 屬性 256
18.9 Mixin 模式的實現 258
第19 章 修飾器 259
19.1 類的修飾 259
19.2 方法的修飾 261
19.3 為什么修飾器不能用于函數 262
19.4 core-decorators.js 263
@autobind 263
@readonly 263
@override 263
@deprecate(別名@deprecated) 264
@suppressWarnings 265
19.5 使用修飾器實現自動發布事件 265
19.6 Mixin 266
19.7 Trait 267
19.8 Babel 轉碼器的支持 269
第20 章 Module 270
20.1 嚴格模式 271
20.2 export 命令 271
20.3 import 命令 272
20.4 模塊的整體加載 273
20.5 module 命令 274
20.6 export default 命令 274
20.7 模塊的繼承 276
20.8 ES6 模塊加載的實質 277
20.9 循環加載 278
CommonJS 模塊的加載原理 279
CommonJS 模塊的循環加載 279
ES6 模塊的循環加載 280
20.10 ES6 模塊的轉碼 282
ES6 module transpiler 282
SystemJS 282
第21 章 編程風格 284
21.1 塊級作用域 284
let 取代var 284
全局常量和線程安全 285
嚴格模式 285
21.2 字符串 285
21.3 解構賦值 285
21.4 對象 286
21.5 數組 288
21.6 函數 288
21.7 Map 結構 289
21.8 Class 290
21.9 模塊 291
21.10 ESLint 的使用 292
第22 章 讀懂ECMAScript 規格 293
22.1 概述 293
22.2 相等運算符 293
22.3 數組的空位 295
22.4 數組的map 方法 296
第23 章 參考鏈接 299
23.1 官方文件 299
23.2 綜合介紹 299
23.3 let 和const 302
23.4 解構賦值 302
23.5 字符串 303
23.6 正則 304
23.7 數值 304
23.8 數組 304
23.9 函數 305
23.10 對象 306
23.11 Proxy 和Reflect 306
23.12 Symbol 308
23.13 二進制數組 308
23.14 Set 和Map 309
23.15 Iterator 310
23.16 Generator 311
23.17 Promise 對象 312
23.18 Class 314
23.19 Decorator 314
23.20 Module 315
23.21 工具 316



下載地址:網盤下載

轉載于:https://www.cnblogs.com/long12365/p/9731586.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hexo博客添加暗色模式_我如何向網站添加暗模式

hexo博客添加暗色模式同一個網站,兩種不同的配色方案 (Same website, two different color schemes) Last year I made it a point to redesign my website from scratch. I wanted something simple and minimalist looking that clearly stated what this was — …

leetcode 331. 驗證二叉樹的前序序列化

序列化二叉樹的一種方法是使用前序遍歷。當我們遇到一個非空節點時,我們可以記錄下這個節點的值。如果它是一個空節點,我們可以使用一個標記值記錄,例如 #。_9_/ \3 2/ \ / \4 1 # 6 / \ / \ / \ # # # # # # 例如&#xff0…

mongodb數據可視化_使用MongoDB實時可視化開放數據

mongodb數據可視化Using Python to connect to Taiwan Government PM2.5 open data API, and schedule to update data in real time to MongoDB — Part 2使用Python連接到臺灣政府PM2.5開放數據API,并計劃將數據實時更新到MongoDB —第2部分 目標 (Goal) This ti…

4.kafka的安裝部署

為了安裝過程對一些參數的理解,我先在這里提一下kafka一些重點概念,topic,broker,producer,consumer,message,partition,依賴于zookeeper, kafka是一種消息隊列,他的服務端是由若干個broker組成的,broker會向zookeeper,producer生成者對應一個…

javascript初學者_針對JavaScript初學者的調試技巧和竅門

javascript初學者by Priyanka Garg由Priyanka Garg My intended audience for this tutorial is beginner programmers. You’ll learn about frustration-free debugging with chrome dev tools.本教程的目標讀者是初學者。 您將學習使用chrome開發工具進行無挫折的調試。 D…

leetcode 705. 設計哈希集合

不使用任何內建的哈希表庫設計一個哈希集合(HashSet)。 實現 MyHashSet 類: void add(key) 向哈希集合中插入值 key 。 bool contains(key) 返回哈希集合中是否存在這個值 key 。 void remove(key) 將給定值 key 從哈希集合中刪除。如果哈希…

ecshop 前臺個人中心修改側邊欄 和 側邊欄顯示不全 或 導航現實不全

怎么給個人中心側邊欄加項或者減項 在模板文件default/user_menu.lbi 文件里添加或者修改,一般看到頁面都會知道怎么加,怎么刪,這里就不啰嗦了 添加一個欄目以后,這個地址跳的頁面怎么寫 這是最基本的一個包括左側個人信息,頭部導航欄 <!DOCTYPE html PUBLIC "-//W3C//…

leetcode 706. 設計哈希映射

不使用任何內建的哈希表庫設計一個哈希映射&#xff08;HashMap&#xff09;。 實現 MyHashMap 類&#xff1a; MyHashMap() 用空映射初始化對象 void put(int key, int value) 向 HashMap 插入一個鍵值對 (key, value) 。如果 key 已經存在于映射中&#xff0c;則更新其對應…

數據庫語言 數據查詢_使用這種簡單的查詢語言開始查詢數據

數據庫語言 數據查詢Working with data is becoming an increasingly important skill in the modern workplace. 在現代工作場所中&#xff0c;處理數據已成為越來越重要的技能。 Data is no longer the domain of analysts and software engineers. With todays technology,…

面向對象編程思想-觀察者模式

一、引言 相信猿友都大大小小經歷過一些面試&#xff0c;其中有道經典題目&#xff0c;場景是貓咪叫了一聲&#xff0c;老鼠跑了&#xff0c;主人被驚醒&#xff08;設計有擴展性的可加分&#xff09;。對于初學者來說&#xff0c;可能一臉懵逼&#xff0c;這啥跟啥啊是&#x…

typescript 使用_如何使用TypeScript輕松修改Minecraft

typescript 使用by Josh Wulf通過喬什沃爾夫(Josh Wulf) 如何使用TypeScript輕松修改Minecraft (How to modify Minecraft the easy way with TypeScript) Usually, modifying Minecraft requires coding in Java, and a lot of scaffolding. Now you can write and share Min…

Python:在Pandas數據框中查找缺失值

How to find Missing values in a data frame using Python/Pandas如何使用Python / Pandas查找數據框中的缺失值 介紹&#xff1a; (Introduction:) When you start working on any data science project the data you are provided is never clean. One of the most common …

監督學習-回歸分析

一、數學建模概述 監督學習&#xff1a;通過已有的訓練樣本進行訓練得到一個最優模型&#xff0c;再利用這個模型將所有的輸入映射為相應的輸出。監督學習根據輸出數據又分為回歸問題&#xff08;regression&#xff09;和分類問題&#xff08;classfication&#xff09;&#…

leetcode 54. 螺旋矩陣(遞歸)

給你一個 m 行 n 列的矩陣 matrix &#xff0c;請按照 順時針螺旋順序 &#xff0c;返回矩陣中的所有元素。 示例 1&#xff1a; 輸入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 輸出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 輸入&#xff1a;matrix [[1,…

微服務架構技能

2019獨角獸企業重金招聘Python工程師標準>>> 微服務架構技能 博客分類&#xff1a; 架構 &#xff08;StuQ 微服務技能圖譜&#xff09; 2課程簡介 本課程分為基礎篇和高級篇兩部分&#xff0c;旨在通過完整的案例&#xff0c;呈現微服務的開發、測試、構建、部署、…

phpstorm 調試_PhpStorm中的多用戶調試

phpstorm 調試by Ray Naldo雷納爾多(Ray Naldo) PhpStorm中的多用戶調試 (Multi-User Debugging in PhpStorm) 使用Xdebug和DBGp代理 (Using Xdebug and DBGp Proxy) “Er, wait a minute… Don’t you just use xdebug.remote_connect_back which has been introduced since …

Tableau Desktop認證:為什么要關心以及如何通過

Woah, Tableau!哇&#xff0c;Tableau&#xff01; By now, almost everyone’s heard of the data visualization software that brought visual analytics to the public. Its intuitive drag and drop interface makes connecting to data, creating graphs, and sharing d…

約束布局constraint-layout導入失敗的解決方案 - 轉

今天有同事用到了約束布局&#xff0c;但是導入我的工程出現錯誤 **提示錯誤&#xff1a; Could not find com.Android.support.constraint:constraint-layout:1.0.0-alpha3** 我網上查了一下資料&#xff0c;都說是因為我的androidStudio版本是最新的穩定版導入這個包就會報這…

算法復習:冒泡排序

思想&#xff1a;對于一個列表,每個數都是一個"氣泡 "&#xff0c;數字越大表示"越重 "&#xff0c;最重的氣泡移動到列表最后一位&#xff0c;冒泡排序后的結果就是“氣泡”按照它們的重量依次移動到列表中它們相應的位置。 算法&#xff1a;搜索整個列表…

leetcode 59. 螺旋矩陣 II(遞歸)

給你一個正整數 n &#xff0c;生成一個包含 1 到 n2 所有元素&#xff0c;且元素按順時針順序螺旋排列的 n x n 正方形矩陣 matrix 。 示例 1&#xff1a; 輸入&#xff1a;n 3 輸出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]] 解題思路 按層進行數字的填充&#xff0c;每一層…