作 者:[阿根廷] 尼古拉斯·貝瓦誇(Nicolás Bevacqua) 著 李松峰,劉冰晶,高峰 譯
定 價:79
出 版 社:人民郵電出版社
出版日期:2018年07月01日
頁 數:241
裝 幀:平裝
ISBN:9787115510402
“尼古拉斯寫的東西特別實用……建議你好好讀讀,從中發現對自己有用的東西,進而真正擁抱JavaScript,致力於為所有人開發更好的Web應用。”——Brendan Eich,JavaScript之父。“本書全面介紹了ES6新特性的語法和語義,有助於你大幅度提升代碼的表達能力。作者把這些特性融入簡單易懂的示例中,幫你快速上手。”——Kent C. Dodds,PayPal前端工程師,TC39成員。本書從實際開發角度介紹ES6及後續更新版本特性,以循序漸進、通俗易懂的方式講解各種等
●序 xi前言 xiii第 1章 ECMAScript和JavaScript的未來 11.1 JavaScript標準簡史 11.2 持續迭代的ECMAScript 31.3 瀏覽器支持和輔助工具 51.3.1 Babel轉譯器簡介 51.3.2 使用ESLint提高代碼質量和一致性 91.4 ES6特性 111.5 JavaScript的未來 12第 2章 ES6基礎 142.1 對像字面量 142.1.1 屬性值簡寫 142.1.2 可計算屬性名 152.1.3 方法定義 172.2 箭頭函數 182.2.1 詞法作用域 192.2.2 箭頭函數的寫法 202.2.3 優點和用例 212.3 解構 222.3.1 對像的解構 222.3.2 數組的解構 252.3.3 函數參數的默認值 252.3.4 函數參數的解構 262.3.5 解構的用例 282.4 剩餘參數和擴展運算符 292.4.1 剩餘參數 292.4.2 擴展運算符 302.5 模板字面量 322.5.1 字符串插值 322.5.2 多行模板字面量 332.5.3 標簽模板 352.6 let和const聲明 372.6.1 塊級作用域和let聲明 382.6.2 暫時性死區 392.6.3 const聲明 412.6.4 const和let的優勢 42第3章 類、符號、對像和裝飾器 443.1 類 443.1.1 使用類 443.1.2 類的屬性和方法 473.1.3 類的繼承 493.2 符號 513.2.1 本地符號 513.2.2 符號的實際用法 533.2.3 全局符號注冊表 553.2.4 眾所周知的符號 573.3 對像的內置改進 583.3.1 使用Object.assign擴展對像 583.3.2 使用Object.is進行對像比較 613.3.3 Object.setPrototypeOf 623.4 裝飾器 633.4.1 初識JavaScript裝飾器 633.4.2 裝飾器疊加及不變性提醒 643.4.3 用例:C#中的特性 643.4.4 在JavaScript中裝飾屬性 66第4章 迭代與流程控制 684.1 Promise 684.1.1 快速理解Promise 684.1.2 Promise的延續與連綴 724.1.3 創建Promise 764.1.4 Promise的狀態 784.1.5 Promise#finally提案 794.1.6 Promise.all和Promise.race 814.2 迭代器協議與可迭代協議 834.2.1 迭代的原理 834.2.2 無窮序列 854.2.3 迭代對像以生成鍵/值對 884.2.4 打造多功能播放列表 904.3 生成器函數與生成器對像 934.3.1 生成器基礎 934.3.2 手工迭代生成器 964.3.3 將生成器混入可迭代對像 974.3.4 使用生成器遍歷樹 994.3.5 傳遞生成器函數 1014.3.6 處理異步流 1024.3.7 在生成器上拋出錯誤 1034.3.8 代替生成器返回 1044.3.9 基於生成器的異步I/O 1054.4 異步函數 1094.4.1 各種異步代碼 1094.4.2 使用async/await 1114.4.3 並發異步流 1124.4.4 錯誤處理 1134.4.5 深入理解異步函數1144.5 異步迭代 1194.5.1 異步迭代器 1194.5.2 異步生成器 120第5章 巧妙使用ES中的集合 1225.1 使用ES6 map 1245.1.1 初識ES6 map 1245.1.2 散列映射和素 1285.2 理解和使用WeakMap 1305.3 ES6中的Set 1315.4 ES6 WeakSet 133第6章 使用代理控制屬性訪問 1366.1 了解代理 1366.1.1 捕獲get訪問 1376.1.2 捕獲set訪問 1386.1.3 通過代理實現模式驗證 1406.2 可撤銷代理 1426.3 代理捕獲器 1436.3.1 has捕獲器 1436.3.2 deleteProperty捕獲器 1446.3.3 defineProperty捕獲器 1466.3.4 ownKeys捕獲器 1486.4 高級代理捕獲器 1506.4.1 getOwnPropertyDescriptor捕獲器 1506.4.2 apply捕獲器 1516.4.3 construct捕獲器 1546.4.4 getPrototypeOf捕獲器 1566.4.5 setPrototypeOf捕獲器 1576.4.6 preventExtensions捕獲器 1586.4.7 isExtensible捕獲器 159第7章 ES6中內置API的改進 1617.1 數字 1617.1.1 二進制和八進制字面量 1617.1.2 Number.isNaN 1627.1.3 Number.isFinite 1647.1.4 Number.parseInt 1657.1.5 Number.parseFloat 1667.1.6 Number.isInteger 1667.1.7 Number.EPSILON 1677.1.8 Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 1677.1.9 Number.isSafeInteger 1687.2 Math 1707.2.1 Math.sign 1717.2.2 Math.trunc 1717.2.3 Math.cbrt 1717.2.4 Math.expm1 1727.2.5 Math.log1p 1727.2.6 Math.log10 1737.2.7 Math.log2 1737.2.8 三角函數1747.2.9 Math.hypot 1747.2.10 按位計算助手 1747.3 字符串和Unicode 1757.3.1 String#startsWith 1757.3.2 String#endsWith 1767.3.3 String#includes 1777.3.4 String#repeat 1777.3.5 字符串填充和去空白 1797.3.6 Unicode 1807.3.7 String.prototype[Symbol.iterator] 1817.3.8 有關分割字形段的提案 1827.3.9 String#codePointAt 1837.3.10 String.fromCodePoint 1847.3.11 Unicode-Aware字符串反轉 1857.3.12 String#normalize 1857.4 正則表達式 1867.4.1 粘連修飾符/y 1867.4.2 Unicode修飾符/u 1877.4.3 具名捕獲組 1887.4.4 Unicode屬性轉義 1907.4.5 後行斷言 1917.4.6 新的/s(dotAll)修飾符 1937.4.7 String#matchAll 1937.5 Array 1967.5.1 Array.from 1967.5.2 Array.of 1987.5.3 Array#copyWithin 1997.5.4 Array#fill 2007.5.5 Array#find和Array#findIndex 2017.5.6 Array#keys 2017.5.7 Array#values 2027.5.8 Array#entries 2027.5.9 Array.prototype[Symbol.iterator] 202第8章 JavaScript模塊 2048.1 CommonJS 2048.2 JavaScript模塊 2098.2.1 嚴格模式 2098.2.2 export語句 2098.2.3 import語句 2138.2.4 動態import() 2158.3 ES模塊的實踐考量 216第9章 實用建議 2199.1 變量聲明 2199.2 模板字面量 2239.3 簡寫及對像解構 2279.4 剩餘參數和擴展運算符 2299.5 函數偏好 2319.6 類和代理 2359.7 異步代碼流 2389.8 復雜性蠕變、抽像及約定 241
本書旨在讓讀者輕松學習JavaScript的新進展,包括ES6及後續更新。書中提供了大量實用示例,以循序漸進的方式講解了異步函數、對像解構、動態導入及異步生成器等內容。本書不僅介紹了箭頭函數、解構、模板字面量以及其他語法方素,還全面展示了ES6引入的流程控制機制,以及如何高效地簡化自己的代碼。本書的討論還涉及ES6內置的新集合類型、使用代理控制屬性訪問、ES6中內置API的改進、CommonJS與ECMAScript模塊的互用性等方面。
[阿根廷] 尼古拉斯·貝瓦誇(Nicolás Bevacqua) 著 李松峰,劉冰晶,高峰 譯
尼古拉斯·貝瓦誇(Nicolás Bevacqua)知名JavaScript布道師,來自阿根廷的JavaScript編程高手,目前是Elastic公司用戶界面工程師。另著有《JavaScript Web應用開發》一書。【譯者簡介】李松峰360前端開發專家、前端TC委員、W3C AC代表,奇舞團Web字體服務“奇字庫”作者。劉冰晶畢業於北京郵電大學,現為奇舞團前端開發工程師,專注於數據可視化以及前端動畫領域。高峰碩士,畢業於中國科學技術大學軟件學院。現為奇虎360前端開發工程師。【審校簡介】黃小璐畢業等