深入理解ES6 pdf

下載地址:網盤下載

?

?

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

第1章 塊級作用域綁定 1
var聲明及變量提升(Hoisting)機制 1
塊級聲明 3
-- let聲明 3
-- 禁止重聲明 4
-- const聲明 4
-- 臨時死區(Temporal Dead Zone) 6
循環中的塊作用域綁定 7
-- 循環中的函數 8
-- 循環中的let聲明 9
-- 循環中的const聲明 10
全局塊作用域綁定 12
塊級綁定最佳實踐的進化 13
小結 13
第2章 字符串和正則表達式 14
更好的Unicode支持 14
-- UTF-16碼位 15
-- codePointAt()方法 16
-- String.fromCodePoint()方法 17
-- normalize()方法 17
-- 正則表達式u修飾符 19
其他字符串變更 21
-- 字符串中的子串識別 21
-- repeat()方法 22
其他正則表達式語法變更 23
-- 正則表達式y修飾符 23
-- 正則表達式的復制 26
-- flags屬性 27
模板字面量 28
-- 基礎語法 28
-- 多行字符串 29
-- 字符串占位符 31
-- 標簽模板 32
小結 36
第3章 函數 37
函數形參的默認值 37
-- 在ECMAScript 5中模擬默認參數 38
-- ECMAScript 6中的默認參數值 38
-- 默認參數值對arguments對象的影響 40
-- 默認參數表達式 42
-- 默認參數的臨時死區 44
處理無命名參數 46
-- ECMAScript 5中的無命名參數 46
-- 不定參數 47
增強的Function構造函數 49
展開運算符 50
name屬性 52
-- 如何選擇合適的名稱 52
-- name屬性的特殊情況 52
明確函數的多重用途 54
-- 在ECMAScript 5中判斷函數被調用的方法 54
-- 元屬性(Metaproperty)new.target 55
塊級函數 57
-- 塊級函數的使用場景 58
-- 非嚴格模式下的塊級函數 58
箭頭函數 59
-- 箭頭函數語法 60
-- 創建立即執行函數表達式 62
-- 箭頭函數沒有this綁定 63
-- 箭頭函數和數組 65
-- 箭頭函數沒有arguments綁定 66
-- 箭頭函數的辨識方法 66
尾調用優化 67
-- ECMAScript 6中的尾調用優化 68
-- 如何利用尾調用優化 69
小結 71
第4章 擴展對象的功能性 72
對象類別 72
對象字面量語法擴展 73
-- 屬性初始值的簡寫 73
-- 對象方法的簡寫語法 74
-- 可計算屬性名(Computed Property Name) 75
新增方法 76
-- Object.is()方法 76
-- Object.assign()方法 77
重復的對象字面量屬性 80
自有屬性枚舉順序 81
增強對象原型 82
-- 改變對象的原型 82
-- 簡化原型訪問的Super引用 83
正式的方法定義 86
小結 88
第5章 解構:使數據訪問更便捷 89
為何使用解構功能 89
對象解構 90
-- 解構賦值 91
-- 默認值 92
-- 為非同名局部變量賦值 93
-- 嵌套對象解構 94
數組解構 96
-- 解構賦值 97
-- 默認值 99
-- 嵌套數組解構 99
-- 不定元素 99
混合解構 101
解構參數 102
-- 必須傳值的解構參數 103
-- 解構參數的默認值 104
小結 106
第6章 Symbol和Symbol屬性 107
創建Symbol 107
Symbol的使用方法 109
Symbol共享體系 110
Symbol與類型強制轉換 112
Symbol屬性檢索 112
通過well-known Symbol暴露內部操作 113
-- Symbol.hasInstance方法 114
-- Symbol.isConcatSpreadable屬性 116
-- Symbol.match、Symbol.replace、Symbol.search和Symbol.split屬性 118
-- Symbol.toPrimitive方法 120
-- Symbol.toStringTag屬性 122
-- Symbol.unscopables屬性 125
小結 127
第7章 Set集合與Map集合 128
ECMAScript 5中的Set集合與Map集合 129
該解決方案的一些問題 129
ECMAScript 6中的Set集合 131
-- 創建Set集合并添加元素 131
-- 移除元素 133
-- Set集合的forEach()方法 133
-- 將Set集合轉換為數組 136
-- Weak Set集合 136
ECMAScript 6中的Map集合 139
-- Map集合支持的方法 140
-- Map集合的初始化方法 141
-- Map集合的forEach()方法 142
-- Weak Map集合 143
小結 147
第8章 迭代器(Iterator)和生成器(Generator) 149
循環語句的問題 149
什么是迭代器 150
什么是生成器 151
-- 生成器函數表達式 153
-- 生成器對象的方法 154
可迭代對象和for-of循環 155
-- 訪問默認迭代器 156
-- 創建可迭代對象 157
內建迭代器 158
-- 集合對象迭代器 158
-- 字符串迭代器 163
-- NodeList迭代器 164
展開運算符與非數組可迭代對象 165
高級迭代器功能 166
-- 給迭代器傳遞參數 166
-- 在迭代器中拋出錯誤 168
-- 生成器返回語句 170
-- 委托生成器 171
異步任務執行 174
-- 簡單任務執行器 174
-- 向任務執行器傳遞數據 176
-- 異步任務執行器 177
小結 180
第9章 JavaScript中的類 181
ECMAScript 5中的近類結構 181
類的聲明 182
-- 基本的類聲明語法 182
-- 為何使用類語法 184
類表達式 186
-- 基本的類表達式語法 186
-- 命名類表達式 187
作為一等公民的類 189
訪問器屬性 190
可計算成員名稱 192
生成器方法 193
靜態成員 195
繼承與派生類 196
-- 類方法遮蔽 199
-- 靜態成員繼承 199
-- 派生自表達式的類 200
-- 內建對象的繼承 203
-- Symbol.species屬性 205
在類的構造函數中使用new.target 208
小結 210
第10章 改進的數組功能 211
創建數組 211
-- Array.of()方法 212
-- Array.from()方法 213
為所有數組添加的新方法 216
-- find()方法和findIndex()方法 217
-- fill()方法 217
-- copyWithin()方法 218
定型數組 219
-- 數值數據類型 220
-- 數組緩沖區 221
-- 通過視圖操作數組緩沖區 221
定型數組與普通數組的相似之處 228
-- 通用方法 229
-- 相同的迭代器 230
-- of()方法和from()方法 230
定型數組與普通數組的差別 231
-- 行為差異 231
-- 缺失的方法 232
-- 附加方法 233
小結 234
第11章 Promise與異步編程 235
異步編程的背景知識 235
-- 事件模型 236
-- 回調模式 236
Promise的基礎知識 239
-- Promise的生命周期 239
-- 創建未完成的Promise 242
-- 創建已處理的Promise 244
-- 執行器錯誤 247
全局的Promise拒絕處理 248
Node.js環境的拒絕處理 248
瀏覽器環境的拒絕處理 251
串聯Promise 253
-- 捕獲錯誤 254
-- Promise鏈的返回值 255
-- 在Promise鏈中返回Promise 256
響應多個Promise 259
-- Promise.all()方法 259
-- Promise.race()方法 260
自Promise繼承 262
基于Promise的異步任務執行 263
小結 267
第12章 代理(Proxy)和反射(Reflection)API 269
數組問題 269
代理和反射 270
創建一個簡單的代理 271
使用set陷阱驗證屬性 272
用get陷阱驗證對象結構(Object Shape) 274
使用has陷阱隱藏已有屬性 275
用deleteProperty陷阱防止刪除屬性 277
原型代理陷阱 279
-- 原型代理陷阱的運行機制 279
-- 為什么有兩組方法 281
對象可擴展性陷阱 282
-- 兩個基礎示例 283
-- 重復的可擴展性方法 284
屬性描述符陷阱 285
-- 給Object.defineProperty()添加限制 286
-- 描述符對象限制 287
-- 重復的描述符方法 288
ownKeys陷阱 290
函數代理中的apply和construct陷阱 291
-- 驗證函數參數 292
-- 不用new調用構造函數 294
-- 覆寫抽象基類構造函數 296
-- 可調用的類構造函數 297
可撤銷代理 298
解決數組問題 299
-- 檢測數組索引 300
-- 添加新元素時增加length的值 300
-- 減少length的值來刪除元素 302
-- 實現MyArray類 304
將代理用作原型 307
-- 在原型上使用get陷阱 307
-- 在原型上使用set陷阱 308
-- 在原型上使用has陷阱 309
-- 將代理用作類的原型 310
小結 314
第13章 用模塊封裝代碼 315
什么是模塊 315
導出的基本語法 316
導入的基本語法 317
-- 導入單個綁定 318
-- 導入多個綁定 318
-- 導入整個模塊 318
-- 導入綁定的一個微妙怪異之處 320
導出和導入時重命名 320
模塊的默認值 321
-- 導出默認值 321
-- 導入默認值 322
重新導出一個綁定 323
無綁定導入 324
加載模塊 325
-- 在Web瀏覽器中使用模塊 325
-- 瀏覽器模塊說明符解析 329
小結 330
附錄A ECMAScript 6中較小的改動 331
附錄B 了解ECMAScript 7(2016) 337
索引 343

?

?

?

下載地址:網盤下載

?

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

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

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

相關文章

MyBatis之輸入與輸出(resultType、resultMap)映射

2019獨角獸企業重金招聘Python工程師標準>>> 在MyBatis中,我們通過parameterType完成輸入映射(指將值映射到sql語句的占位符中,值的類型與dao層響應方法的參數類型一致),通過resultType完成輸出映射(從數據庫中輸出,通…

2021-08-25556. 下一個更大元素 III

556. 下一個更大元素 III 給你一個正整數 n ,請你找出符合條件的最小整數,其由重新排列 n 中存在的每位數字組成,并且其值大于 n 。如果不存在這樣的正整數,則返回 -1 。 注意 ,返回的整數應當是一個 32 位整數 &…

gradle tool升級到3.0注意事項

Gradle版本升級 其實當AS升級到3.0之后,Gradle Plugin和Gradle不升級也是可以繼續使用的,但很多新的特性如:Java8支持、新的依賴匹配機制、AAPT2等新功能都無法正常使用。 Gradle Plugin升級到3.0.0及以上,修改project/build.grad…

如何使用React,TypeScript和React測試庫創建出色的用戶體驗

Im always willing to learn, no matter how much I know. As a software engineer, my thirst for knowledge has increased a lot. I know that I have a lot of things to learn daily.無論我知道多少,我總是愿意學習。 作為軟件工程師,我對知識的渴望…

PowerDesigner常用設置

2019獨角獸企業重金招聘Python工程師標準>>> 使用powerdesigner進行數據庫設計確實方便,以下是一些常用的設置 附加:工具欄不見了 調色板(Palette)快捷工具欄不見了 PowerDesigner 快捷工具欄 palette 不見了,怎么重新打開&#x…

bzoj5090[lydsy11月賽]組題

裸的01分數規劃,二分答案,沒了. #include<cstdio> #include<algorithm> using namespace std; const int maxn100005; int a[maxn]; double b[maxn]; double c[maxn]; typedef long long ll; ll gcd(ll a,ll b){return (b0)?a:gcd(b,a%b); } int main(){int n,k;s…

797. 所有可能的路徑

797. 所有可能的路徑 給你一個有 n 個節點的 有向無環圖&#xff08;DAG&#xff09;&#xff0c;請你找出所有從節點 0 到節點 n-1 的路徑并輸出&#xff08;不要求按特定順序&#xff09; 二維數組的第 i 個數組中的單元都表示有向圖中 i 號節點所能到達的下一些節點&#…

深入框架本源系列 —— Virtual Dom

該系列會逐步更新&#xff0c;完整的講解目前主流框架中底層相通的技術&#xff0c;接下來的代碼內容都會更新在 這里 為什么需要 Virtual Dom 眾所周知&#xff0c;操作 DOM 是很耗費性能的一件事情&#xff0c;既然如此&#xff0c;我們可以考慮通過 JS 對象來模擬 DOM 對象&…

網絡工程師常備工具_網絡安全工程師應該知道的10種工具

網絡工程師常備工具If youre a penetration tester, there are numerous tools you can use to help you accomplish your goals. 如果您是滲透測試人員&#xff0c;則可以使用許多工具來幫助您實現目標。 From scanning to post-exploitation, here are ten tools you must k…

configure: error: You need a C++ compiler for C++ support.

安裝pcre包的時候提示缺少c編譯器 報錯信息如下&#xff1a; configure: error: You need a C compiler for C support. 解決辦法&#xff0c;使用yum安裝&#xff1a;yum -y install gcc-c 轉載于:https://www.cnblogs.com/mkl34367803/p/8428264.html

程序編寫經驗教訓_編寫您永遠都不會忘記的有效績效評估的經驗教訓。

程序編寫經驗教訓This article is intended for two audiences: people who need to write self-evaluations, and people who need to provide feedback to their colleagues. 本文面向兩個受眾&#xff1a;需要編寫自我評估的人員和需要向同事提供反饋的人員。 For the purp…

刪除文件及文件夾命令

方法一&#xff1a; echo off ::演示&#xff1a;刪除指定路徑下指定天數之前&#xff08;以文件的最后修改日期為準&#xff09;的文件。 ::如果演示結果無誤&#xff0c;把del前面的echo去掉&#xff0c;即可實現真正刪除。 ::本例需要Win2003/Vista/Win7系統自帶的forfiles命…

BZOJ 3527: [ZJOI2014]力(FFT)

題意 給出\(n\)個數\(q_i\),給出\(Fj\)的定義如下&#xff1a; \[F_j\sum \limits _ {i < j} \frac{q_iq_j}{(i-j)^2}-\sum \limits _{i >j} \frac{q_iq_j}{(i-j)^2}.\] 令\(E_iF_i/q_i\)&#xff0c;求\(E_i\). 題解 一開始沒發現求\(E_i\)... 其實題目還更容易想了... …

c# 實現刷卡_如何在RecyclerView中實現“刷卡選項”

c# 實現刷卡Lets say a user of your site wants to edit a list item without opening the item and looking for editing options. If you can enable this functionality, it gives that user a good User Experience. 假設您網站的用戶想要在不打開列表項并尋找編輯選項的情…

批處理命令無法連續執行

如題&#xff0c;博主一開始的批處理命令是這樣的&#xff1a; cd node_modules cd heapdump node-gyp rebuild cd .. cd v8-profiler-node8 node-pre-gyp rebuild cd .. cd utf-8-validate node-gyp rebuild cd .. cd bufferutil node-gyp rebuild pause執行結果&#xff1…

sql語句中的in用法示例_示例中JavaScript in操作符

sql語句中的in用法示例One of the first topics you’ll come across when learning JavaScript (or any other programming language) are operators. 學習JavaScript(或任何其他編程語言)時遇到的第一個主題之一是運算符。 The most common operators are the arithmetic, l…

vue項目實戰總結

馬上過年了&#xff0c;最近工作不太忙&#xff0c;再加上本人最近比較懶&#xff0c;毫無斗志&#xff0c;不愿學習新東西&#xff0c;或許是要過年的緣故(感覺像是在找接口)。 就把前一段時間做過的vue項目&#xff0c;進行一次完整的總結。 這次算是詳細總結&#xff0c;會從…

Linux !的使用

轉自&#xff1a;https://www.linuxidc.com/Linux/2015-05/117774.htm 一、history    78 cd /mnt/ 79 ls 80 cd / 81 history 82 ls 83 ls /mnt/ !78 相當于執行cd /mnt !-6 也相當于執行cd /mnt 二、!$ cd /mnt ls !$ 相當于執行 ls /mnt轉載于:https://www.cnblogs.…

881. 救生艇

881. 救生艇 第 i 個人的體重為 people[i]&#xff0c;每艘船可以承載的最大重量為 limit。 每艘船最多可同時載兩人&#xff0c;但條件是這些人的重量之和最多為 limit。 返回載到每一個人所需的最小船數。(保證每個人都能被船載)。 示例 1&#xff1a; 輸入&#xff1a;…

使用python數據分析_如何使用Python提升您的數據分析技能

使用python數據分析If youre learning Python, youve likely heard about sci-kit-learn, NumPy and Pandas. And these are all important libraries to learn. But there is more to them than you might initially realize.如果您正在學習Python&#xff0c;則可能聽說過sci…