實戰ES2015:深入現代JavaScript 應用開發

實戰ES2015:深入現代JavaScript 應用開發
定價:474
NT $ 474
  • 作者:小問
  • 出版社:電子工業出版社
  • 出版日期:2016-10-01
  • 語言:簡體中文
  • ISBN10:7121300184
  • ISBN13:9787121300189
  • 裝訂:275頁 / 普通級 / 1-1
 

內容簡介

JavaScript在ES2015標准中的表現,以及利用ES2015中新特性在JavaScript應用開發中的實踐。以清晰的思路說明ES2015的詳細特性和意義,並以實際案例展示利用ES2015中的特性如何提高JavaScript應用的前端和后端的開發速度和工程化模式。

小問,本名甘超陽,高級JavaScript工程師,國內Node.js最早的研究者之一,技術布道者、講師,參與並維護多個優秀JavaScript開源項目。數學系理學學士,對多方面的技術領域都有研究和自己的理解,熟悉各類JavaScript應用的開發和機器學習應用開發。同時也是一個業余攝影師,熱愛人像攝影。
 

目錄

第1章ECMAScript版本發展歷程
1.1ECMAScript的歷史更替
1.1.1ECMA—262/ECMA—262Edition2
1.1.2ECMA—262Edition3
1.1.3ECMA—262Edition5
1.1.4ECMA—262Edition4
1.2小結
第2章ES2015能為實際開發帶來什麼
2.1簡單概括ES2015
2.2語法糖
2.3工程優勢
2.3.1模塊化
2.3.2模塊化與組件化結合
2.3.3內存安全
2.4小結
第3章ES2015新語法詳解
3.1let、const和塊級作用域
3.1.1塊級作用域
3.1.2let定義變量
3.1.3const定義常量
3.1.3.1使用語法
3.1.3.2const與塊級作用域
3.1.4變量的生命周期
3.1.5更佳體驗
3.1.5.1letVSconst
3.1.5.2let、const與循環語句
3.2箭頭函數(ArrowFunction)
3.2.1使用語法
3.2.1.1單一參數的單行箭頭函數
3.2.1.2多參數的單行箭頭函數
3.2.1.3多行箭頭函數
3.2.1.4無參數箭頭函數
3.2.2this穿透
3.2.2.1程序邏輯注意事項
3.2.2.2編寫語法注意事項
3.3模板字符串(Template String)
3.3.1字符串元素注入
3.3.2多行字符串
3.3.3模板字符串使用語法
3.3.3.1支持字符串元素注入
3.3.3.2支持換行
3.3.4注意事項
3.4對象字面量擴展語法(Enhanced Object Literals)
3.4.1函數類屬性的省略語法
3.4.2支持__proto__注入
3.4.3可動態計算的屬性名
3.4.4將屬性名定義省略
3.5表達式結構(Destructuring)
3.5.1使用語法
3.5.1.1使用對象作為返回載體(帶有標簽的多返回值)
3.5.1.2使用數組作為返回載體
3.5.2使用場景
3.5.2.1Promise與模式匹配
3.5.2.2Swap(變量值交換)
3.5.3高級用法
3.5.3.1解構別名
3.5.3.2無法匹配的缺省值
3.5.3.3深層匹配
3.5.3.4配合其他新特性
3.6函數參數表達、傳參
3.6.1默認參數值
3.6.1.1使用語法
3.6.1.2使用場景
3.6.2剩余參數
3.6.2.1使用語法
3.6.2.2使用場景
3.6.2.3注意事項
3.6.3解構傳參
3.7新的數據結構
3.7.1Set有序集合
3.7.1.1使用語法
3.7.1.2增減元素
3.7.1.3檢查元素
3.7.1.4歷遍元素
3.7.2WeakSet
3.7.3Map映射類型
3.7.3.1使用語法
3.7.3.2增減鍵值對
3.7.3.3獲取鍵值對
3.7.3.4檢查映射對象中的鍵值對
3.7.3.5歷遍映射對象中的鍵值對
3.7.3.6映射對象與Object的區別
3.7.4WeakMap
3.8類語法(Classes)
3.8.1使用語法
3.8.1.1基本定義語法
3.8.1.2繼承語法
3.8.1.3Getter/Setter
3.8.1.4靜態方法
3.8.1.5高級技巧
3.8.2注意事項
3.8.3遺憾與期望
3.9生成器(Generator)
3.9.1由來
3.9.2基本概念
3.9.2.1生成器函數(Generator Function)
3.9.2.2生成器(Generator)
3.9.3使用方法
3.9.3.1構建生成器函數
3.9.3.2啟動生成器
3.9.3.3運行生成器內容
3.9.4深入理解
3.9.4.1運行模式
3.9.4.2生成器函數以及生成器對象的檢測
3.9.4.3生成器嵌套
3.9.4.4生成器與協程
3.10Promise
3.10.1基本語法
3.10.1.1創建Promise對象
3.10.1.2進行異步操作
3.10.1.3處理Promise的狀態
3.10.2高級使用方法
3.10.2.1Promise.all(iterable)
3.10.2.2Promise.race(iterable)
3.11代碼模塊化
3.11.1引入模塊
3.11.1.1引入默認模塊
3.11.1.2引入模塊部分接口
3.11.1.3引入全部局部接口到指定命名空間
3.11.1.4混入引入默認接口和命名接口
3.11.1.5不引入接口,僅運行模塊代碼
3.11.2定義模塊
3.11.3暴露模塊
3.11.3.1暴露單一接口
3.11.3.2暴露模塊默認接口
3.11.3.3混合使用暴露接口語句
3.11.3.4從其他模塊暴露接口
3.11.3.5暴露一個模塊的所有接口
3.11.3.6暴露一個模塊的部分接口
3.11.3.7暴露一個模塊的默認接口
3.12Symbol
3.12.1基本語法
……
3.12.1.2注冊全局可重用Symbol
3.12.1.3獲取全局Symbol的key
3.12.2常用Symbol值
3.12.3Symbol.iterator
3.12.3.1for—of循環語句與可迭代對象
3.12.3.2使用Symbol.iterator定義一個可迭代對象
3.12.4Symbol.hasInstance
3.12.5Symbol.match
3.12.6Symbol.unscopables
3.12.7Symbol.to Primitive
3.12.8Symbol.to String Tag
3.13Proxy
3.13.1元編程
3.13.2使用語法
3.13.3handler.has
3.13.4handler.get
3.13.5handler.set
3.13.6handler.apply
3.13.7handler.construct
3.13.8創建可解除Proxy對象
3.13.9使用場景
3.13.9.1看似「不可能」的自動填充
3.13.9.2只讀視圖
3.13.9.3入侵式測試框架
3.14小結
第4章ES2015的前端開發實戰
4.1Filmy的功能規划
4.1.1數據分級
4.1.2數據結構
4.1.2.1核心數據
4.1.2.2分類數據
4.1.2.3相冊數據
4.1.3數據搜索
4.1.3.1搜索分類
4.1.3.2搜索相冊
4.1.4界面原型規划
4.1.4.1着陸頁面
4.1.4.2分類目錄頁面
4.1.4.3分類內容頁面
4.1.4.4相冊頁面
4.2功能組件分割
4.2.1根組件分割
4.2.2着陸頁面
4.2.3目錄頁面
4.2.4分類頁面
4.2.5相冊頁面
4.3技術選型
4.3.1整體架構
4.3.2數據層
4.3.3邏輯層及UI層
4.3.3.1AngularJS
4.3.3.2React.js
4.3.3.3Vue.js
4.3.4程序架構
4.3.4.1路由組件
4.3.4.2數據組件
4.3.4.3視圖組件
4.4數據層開發
4.4.1安裝依賴
4.4.2配置七牛JavaScriptSDK
4.4.3核心配置數據
4.4.3.1獲取核心配置數據
4.4.3.2更新配置數據
4.4.4分類數據
4.4.4.1數據結構
4.4.4.2數據索引
4.4.4.3更新分類數據
4.4.5相冊數據
4.4.5.1數據加載
4.4.5.2數據更新
4.4.5.3數據檢索
4.5入口文件與路由組件開發
4.5.1路由基礎組件
4.5.2入口文件
4.5.2.1簡單的字符串處理
4.5.2.2多國語言處理
4.6着陸頁面開發
4.6.1路由組件開發
4.6.2着陸頁視圖
4.6.2.1引入數據
4.6.2.2綁定視圖
4.6.3分類目錄視圖
4.6.3.1分類元素視圖組件
4.6.3.2渲染分類目錄
4.6.4路由組件、視圖組件與數據組件的聯系
4.6.4.1在邏輯控制器中進行數據操作
4.6.4.2在視圖中進行數據操作
4.6.4.3組織方式的區別與項目應用
4.7分類頁面開發
4.7.1路由組件開發
4.7.2分類元素視圖組件
4.7.3相冊列表視圖組件
4.7.4相冊頁面開發
4.7.4.1相冊頁面的路由組件
4.7.4.2相冊信息視圖組件
4.7.4.3圖片列表視圖組件
4.8管理工具開發
4.9初始化Filmy實例
4.9.1基本元素
4.9.2基本邏輯
4.9.2.1獲取七牛雲的上傳憑證
4.9.2.2檢查並處理管理員對背景圖片的填寫方式
4.9.2.3將核心數據部署到七牛雲上
4.10管理工具的總體組織
4.10.1管理頁面的總體架構
4.10.2側邊欄
4.10.3路由配置
4.11相冊發布頁面
4.11.1基本邏輯
4.11.1.1綁定數據
4.11.1.2綁定元素以接收文件上傳
4.11.2上傳數據
4.11.2.1圖片上傳邏輯
4.11.2.2數據提交
4.12打包發布
4.12.1准備工作
4.12.2配置webpack
4.12.2.1安裝依賴
4.12.2.2編寫配置文件
4.12.3發布到雲端
4.13小結
第5章ES2015的Node.js開發實戰
5.1DuelLiving的功能規划
5.1.1基本產品組織
5.1.2數據結構
5.1.2.1賽事(Duel)
5.1.2.2消息(Message)
5.1.2.3參賽方(Player)和主持人(Host)
5.1.3數據結構的關系
5.2數據層開發
5.2.1文件結構
5.2.2安裝依賴
5.2.3主持人數據和參賽方數據
5.2.4賽事數據
5.2.5消息數據
5.3服務端基本架構開發
5.3.1安裝依賴
5.3.2程序入口
5.3.3路由表
5.4API開發
5.4.1API安全
5.4.2賽事API
5.4.2.1獲取當前可用的所有賽事信息
5.4.2.2獲取指定賽事數據
5.4.2.3創建新的賽事
5.4.3消息API
5.4.3.1獲取指定賽事中的若干消息
5.4.3.2發布消息到指定賽事
5.5直播網絡
5.5.1網絡架構
5.5.1.1集中架構
5.5.1.2分布式架構
5.5.1.3P2P網絡
5.5.2技術實現
5.5.3Web Socket服務端
5.5.3.1建立Web Socket服務端實例
5.5.3.2建立Web Socket通訊連接
5.5.3.3廣播消息
5.5.4P2P協調服務端
5.5.4.1建立P2P協調連接
5.5.4.2存儲客戶端地理信息
5.5.4.3匹配最相近的客戶端
5.6直播間客戶端
5.6.1准備工作
5.6.2建立直播通信
5.6.2.1建立PeerJS客戶端實例
5.6.2.2建立Web Socket通信連接
5.6.2.3建立P2P通信連接
5.6.3處理消息
5.7部署應用
5.7.1編譯代碼
5.7.2運行程序
5.7.3發布部署
5.8小結
第6章ES2016標准
6.1Array.prototype.includes
6.2冪運算符
6.3小結
第7章展望更遠的未來
7.1async/await
7.2Decorators
7.2.1簡單實例
7.2.2黑科技
7.3函數綁定
7.4小結
附錄其他ES2015新特性
 

歷時至少7年制訂的新ECMA Script標准——ECMAScript6(亦稱ECMA Script Harmony,簡稱ES6),終於在2015年6月正式發布。自從2009年上一個標准版本ES5發布以來,ES6就一直以其新語法、新特性吸引着眾多JavaScript開發者,驅使他們積極嘗鮮。

ES6的第1個特性草案發布於2011年7月。

雖然各大瀏覽器廠商所開發的JavaScript引擎至今都還沒有實現對ES2015中所有特性的完美支持,但這並不能阻擋工程師們對ES6的熱情。於是,Babel、Traceur等編譯器便出現了。

在ES2015標准正式發布之前,這些編譯器便能將尚未得到支持的ES2015特性轉換為ES5標准的代碼,使其得到瀏覽器的支持。其中,Babel因具有模塊化轉換器(Transpiler)這一設計特點贏得了絕大多數JavaScript開發者的青睞,本文也將以Babel為基礎工具,向大家展示ES2015的神奇魅力。

如今,使用ES2015標准進行工程開發已經深入人心,甚至連ES2016標准也已經在2016年正式發布。在這個如此恰當的時機,我覺得應該寫一本通俗易懂的關於ES2015標准的書來引導廣大JavaScript愛好者和工程師向新時代邁進。
網路書店 類別 折扣 價格
  1. 新書
    $474