JAVASCRIPT錦囊妙計第二版

Book description

網頁程式設計

"這是一本涵蓋全面並且擁有豐富實務範例的書。"
-Dr. AxelRauschmayer, 《Speaking JavaScript》的作者

JavaScript在應用規模上日趨廣泛,如何善用JavaScript解決問題已是一門重要的課題。本書提供眾多的範例程式。這些範例涵蓋瀏覽器、伺服器及行動裝置領域的各種應用。每個範例包含可再利用的程式碼,對JavaScript物件、Node、Ajax、JSON、資料持續、圖形與多媒體、框架、JavaScript模組化、API等均提供了實用的建議。
 
針對有開發經驗的讀者,本書第一部分包羅JavaScript傳統應用方式以及新進概念。第二部份深入探討伺服器、行動應用開發以及許多最新工具。在過程中你將省下許多寶貴時間並學習到更多尖端技術。

主題簡介:
‧JavaScript經典
‧陣列、函式與JavaScript物件
‧存取使用者介面
‧測試與可及性
‧建立及使用JavaScript函式庫
‧前後端的Ajax溝通
‧豐富互動的網頁效果
 
JavaScript傾巣而出:
‧全新的ECMAScript標準化物件
‧伺服器端的JavaScript(Node)
‧管理與模組化JavaScript
‧錯綜複雜的JavaScript框架
‧進階的前後端溝通
‧視覺化與前後端圖形
‧行動應用程式開發

 

 

Table of contents

  1. 封面
  2. 書名頁
  3. 英文版權頁
  4. JavaScript概觀 (1/2)
  5. JavaScript概觀 (2/2)
  6. 目錄 (1/2)
  7. 目錄 (2/2)
  8. 第一部分 JavaScript經典
  9. 第一章 不簡單的JavaScript建造區塊
  10. 1.1 區分JavaScript物件、原素與字面常數
  11. 1.2 從字串中擷取出串列
  12. 1.3 檢驗是否為字串變數及空字串
  13. 1.4 插入特殊字元
  14. 1.5 以新的字串取代符合樣式的子字串
  15. 1.6 尋找且強調所有符合樣式的實例
  16. 1.7 使用捕捉符號互換字串
  17. 1.8 以命名實體取代HTML標籤
  18. 1.9 轉換ISO 8601的日期格式至JavaScript日期物件
  19. 1.10 使用函式閉包及計時器
  20. 1.11 追蹤經過的時間
  21. 1.12 轉換十進位至十六進位
  22. 1.13 加總所有在表格欄位中的數字
  23. 1.14 轉換度數與弧度
  24. 1.15 找到圓的半徑及圓心使其切合頁面元素
  25. 1.16 計算圓弧的長度
  26. 1.17 安全地使用ES 6新的字串功能
  27. 第二章 JavaScript陣列
  28. 2.1 搜尋陣列
  29. 2.2 使用concat()與apply()撫平二維陣列
  30. 2.3 移除或取代陣列元素
  31. 2.4 擷取出部分陣列元素
  32. 2.5 施行函式於每個陣列元素
  33. 2.6 使用forEach()與call()巡訪從querySelectorAll()得到的結果
  34. 2.7 施行函式於每個陣列元素並且回傳新陣列
  35. 2.8 過濾一個陣列
  36. 2.9 驗證陣列內容
  37. 2.10 使用關聯式陣列儲存表單元素識別碼與值
  38. 2.11 使用分割代入簡化程式
  39. 第三章 函式:JavaScript的建造區塊
  40. 3.1 置放函式與函式提升
  41. 3.2 把函式當作引數傳遞給另一個函式
  42. 3.3 實作遞迴演算法
  43. 3.4 使用計時器與回呼函式防止程式阻塞
  44. 3.5 建立一個記得自己狀態的函式
  45. 3.6 轉換函式引數至陣列
  46. 3.7 使用偏函數應用降低冗餘
  47. 3.8 使用Memoization改進應用效能(快取計算 結果)
  48. 3.9 使用匿名函式包裝全域變數
  49. 3.10 提供預設參數
  50. 第四章 可塑的JavaScript物件
  51. 4.1 保持物件成員私有化
  52. 4.2 使用原型建立物件
  53. 4.3 繼承物件的功能
  54. 4.4 定義新屬性以擴展物件
  55. 4.5 防止物件擴展
  56. 4.6 防止物件的任何改變
  57. 4.7 給予物件命名空間
  58. 4.8 重新探索this與Prototype.bind
  59. 4.9 鏈結物件的方法
  60. 第五章 JavaScript與存取使用者介面
  61. 5.1 存取一個給定元素並找出它的父元素與子元素
  62. 5.2 存取網頁中的所有圖片 (1/2)
  63. 5.2 存取網頁中的所有圖片 (2/2)
  64. 5.3 使用選擇器API找到所有在文章中的圖片
  65. 5.4 設定元素的樣式屬性
  66. 5.5 套用條紋式主題至無序列表
  67. 5.6 尋找擁有某屬性的所有元素
  68. 5.7 插入新段落
  69. 5.8 在新段落中加入文字
  70. 5.9 從HTML表格中刪除列
  71. 5.10 新增層疊網頁
  72. 5.11 建立可折疊式的表單區塊
  73. 5.12 隱藏部分頁面
  74. 5.13 建立基於徘徊式的彈跳視窗
  75. 5.14 顯示顏色快閃以傳達信號
  76. 第六章 初步測試與可及性
  77. 6.1 使用JSHint清理程式碼
  78. 6.2 使用QUnit做單元性測試
  79. 6.3 在多重環境下測試應用程式
  80. 6.4 不同編程技術的效能測試
  81. 6.5 可及地強調錯誤 (1/2)
  82. 6.5 可及地強調錯誤 (2/2)
  83. 6.6 建立可及性自動化更新區域
  84. 第七章 建立與使用JavaScript函式庫
  85. 7.1 尋找完美的函式庫
  86. 7.2 使用Modernizr.load測試功能
  87. 7.3 超越Math物件的能力
  88. 7.4 取得兩個日期之間的天數
  89. 7.5 使用外部函式庫:建立於jQuery框架之上
  90. 7.6 使用jQuery外掛
  91. 7.7 使用Mousetrap處理鍵盤快捷鍵
  92. 7.8 利用公用函式庫Underscore
  93. 7.9 打包你的程式碼
  94. 7.10 加入私有資料成員的支援
  95. 7.11 縮小你的函式庫
  96. 7.12 寄宿你的函式庫
  97. 7.13 從CDN存取程式碼
  98. 7.14 轉換函式庫至jQuery外掛
  99. 7.15 在應用程式中結合多個函式庫
  100. 第八章 簡化的前後端溝通與資料
  101. 8.1 處理經由Ajax呼叫回傳的XML文件
  102. 8.2 從XML樹擷取資訊
  103. 8.3 解析並自動地修改JSON
  104. 8.4 轉換物件至一個過濾/轉換的JSON字串
  105. 8.5 發出至另一個網域的Ajax請求(使用JSONP)
  106. 8.6 從Ajax請求中處理JSON
  107. 8.7 從伺服器填充選擇列表
  108. 8.8 使用計時器自動地更新頁面
  109. 第九章 建立豐富的多媒體及互動式的網頁效果
  110. 9.1 在Canvas中建立動態折線圖
  111. 9.2 加入JavaScript至SVG
  112. 9.3 從網頁腳本存取SVG
  113. 9.4 在HTML中整合SVG與Canvas
  114. 9.5 當音頻檔開始播放時執行例行常式
  115. 9.6 從JavaScript與video元素控制視頻
  116. 9.7 藉由Canvas增加視頻的過濾器效果 (1/2)
  117. 9.7 藉由Canvas增加視頻的過濾器效果 (2/2)
  118. 第二部分 JavaScript傾巢而出
  119. 第十章 新的ECMAScript標準物件
  120. 10.1 在瀏覽器應用程式上使用let
  121. 10.2 建立無重複值的集合
  122. 10.3 使用不同的鍵建立不同的鍵值對
  123. 10.4 建立絕對唯一的物件屬性
  124. 10.5 使迭代任務變得容易
  125. 10.6 建立Yield函式
  126. 10.7 使用Proxies實作即時物件行為的修改
  127. 10.8 建立一個真正的類別並且繼承它(需要從Traceur的一點幫助)
  128. 10.9 使用Promises達到有效率的非同步處理
  129. 第十一章 Node:在伺服器端的JavaScript
  130. 11.1 回應瀏覽器的請求
  131. 11.2 服務格式化的資料
  132. 11.3 讀寫檔案資料
  133. 11.4 在Node中使用let以及其他ES 6的新增功能
  134. 11.5 使用REPL互動地執行Node程式碼
  135. 11.6 從終端機取得輸入
  136. 11.7 與Node計時器一同工作並且了解Node事件處理迴圈
  137. 11.8 管理回呼函式地獄
  138. 11.9 在Node應用程式中取用命令列功能
  139. 11.10 在同一埠號下運行Node與Apache
  140. 11.11 使Node保持啟動與運行
  141. 11.12 監控應用程式的改變並重啟
  142. 11.13 使用Request搜羅網站
  143. 11.14 藉由Commander的幫助建立命令列公用程式
  144. 第十二章 模組化與管理JavaScript
  145. 12.1 以腳本載入器載入腳本
  146. 12.2 以HTML5的方式非同步載入腳本
  147. 12.3 轉換JavaScript至AMD與RequireJS
  148. 12.4 使用RequireJS與jQuery或其他函式庫
  149. 12.5 載入並使用Dojo模組
  150. 12.6 使用npm安裝並維護Node模組
  151. 12.7 使用npm搜尋某特定的Node模組
  152. 12.8 轉換函式庫至Node模組
  153. 12.9 使程式碼可以橫跨所有的模組環境
  154. 12.10 建立可安裝的Node模組
  155. 12.11 使用Bower打包與管理用戶端的相依性
  156. 12.12 使用Browserify編譯Node.js模組以便在瀏覽器中使用
  157. 12.13 對你的Node模組作單元測試
  158. 12.14 以Grunt執行任務
  159. 第十三章 有趣的API
  160. 13.1 藉由RESTful API存取JSON格式資料
  161. 13.2 使用Restify建立RESTFul API (1/2)
  162. 13.2 使用Restify建立RESTFul API (2/2)
  163. 13.3 在桌面瀏覽器中啟用通知
  164. 13.4 在瀏覽器中載入本地文件
  165. 13.5 使用Web Workers與File API建立一個迷你的E-Pub閱讀器
  166. 13.6 探索Google Maps與其他的API (1/2)
  167. 13.6 探索Google Maps與其他的API (2/2)
  168. 13.7 從Node應用程式存取Twitter的API (1/2)
  169. 13.7 從Node應用程式存取Twitter的API (2/2)
  170. 第十四章 JavaScript框架
  171. 14.1 使用Express-Generator產生一個Express網站 (1/2)
  172. 14.1 使用Express-Generator產生一個Express網站 (2/2)
  173. 14.2 轉換產生的Express網站至基本的MVC應用程式 (1/3)
  174. 14.2 轉換產生的Express網站至基本的MVC應用程式 (2/3)
  175. 14.2 轉換產生的Express網站至基本的MVC應用程式 (3/3)
  176. 14.3 選擇SPA框架:解構TodoMVC (1/3)
  177. 14.3 選擇SPA框架:解構TodoMVC (2/3)
  178. 14.3 選擇SPA框架:解構TodoMVC (3/3)
  179. 14.4 與OAuth框架一同工作 (1/3)
  180. 14.4 與OAuth框架一同工作 (2/3)
  181. 14.4 與OAuth框架一同工作 (3/3)
  182. 14.5 使用Web Components延伸可能性 (1/3)
  183. 14.5 使用Web Components延伸可能性 (2/3)
  184. 14.5 使用Web Components延伸可能性 (3/3)
  185. 第十五章 進階的前後端溝通與串流
  186. 15.1 允許跨網域請求
  187. 15.2 在Ajax中實作一個PUT請求
  188. 15.3 透過Ajax傳送二進位資料並且載入至影像
  189. 15.4 跨網域共享HTTP Cookies
  190. 15.5 在用戶端與伺服器端之間建立雙向溝通 (1/2)
  191. 15.5 在用戶端與伺服器端之間建立雙向溝通 (2/2)
  192. 15.6 使用變形串流上傳及壓縮檔案
  193. 15.7 測試WebSocket應用程式的效能與能力
  194. 第十六章 資料視覺化與用戶端/ 伺服器端圖形
  195. 16.1 使用D3建立SVG長條圖 (1/2)
  196. 16.1 使用D3建立SVG長條圖 (2/2)
  197. 16.2 使用雷達圖對映資料點變化
  198. 16.3 藉由WebSocket餵資料給滾動時間軸
  199. 16.4 產生網頁的截圖(PhantomJS) (1/2)
  200. 16.4 產生網頁的截圖(PhantomJS) (2/2)
  201. 16.5 轉換圖形至文字(Ocrad.js)
  202. 16.6 修剪(或者修改)上傳的影像
  203. 第十七章 資料與持續性
  204. 17.1 驗證表單資料
  205. 17.2 使用HTML5持續資訊
  206. 17.3 使用sessionStorage作為用戶端儲存 (1/2)
  207. 17.3 使用sessionStorage作為用戶端儲存 (2/2)
  208. 17.4 建立一個localStorage用戶端資料儲存項目
  209. 17.5 使用Squel.js查詢MySQL資料庫
  210. 17.6 使用IndexedDB在用戶端儲存大區塊資料
  211. 17.7 使用Dropbox Datastore存取雲端上的資料 (1/3)
  212. 17.7 使用Dropbox Datastore存取雲端上的資料 (2/3)
  213. 17.7 使用Dropbox Datastore存取雲端上的資料 (3/3)
  214. 第十八章 啟程! JavaScript Mobile
  215. 18.1 建立一個可安裝,寄宿的Web應用程式
  216. 18.2 打包Web應用程式給Amazon Appstore
  217. 18.3 使用Cordova(PhoneGap)建立基本的Android應用程式 (1/2)
  218. 18.3 使用Cordova(PhoneGap)建立基本的Android應用程式 (2/2)
  219. 18.4 移植Where Am I?至Android (1/2)
  220. 18.4 移植Where Am I?至Android (2/2)
  221. 18.5 建立Geolocation Firefox OS應用程式 (1/2)
  222. 18.5 建立Geolocation Firefox OS應用程式 (2/2)
  223. 18.6 移植Geolocation應用程式至Google Chrome應用程式 (1/2)
  224. 18.6 移植Geolocation應用程式至Google Chrome應用程式 (2/2)
  225. 18.7 在Kindle Fire OS環境中發佈你的Geolocation應用程式
  226. 18.8 為你的Android或Amazon Fire OS應用程式除錯
  227. 18.9 取得關於裝置的資訊
  228. 附錄A 啟動並執行jsBin與jsFiddle
  229. 索引 (1/5)
  230. 索引 (2/5)
  231. 索引 (3/5)
  232. 索引 (4/5)
  233. 索引 (5/5)
  234. 關於作者
  235. 出版記事

Product information

  • Title: JAVASCRIPT錦囊妙計第二版
  • Author(s): Shelley Powers
  • Release date: October 2015
  • Publisher(s): GoTop Information, Inc.
  • ISBN: None

You might also like

book

高效能網站建置指南

by Steve Souders

Web開發者效能最佳化實務 「《高效能網站建置指南》包含最新研究成果,激發你的編程智慧,讓你的網站運作順暢,如行雲流水般。我愛死了這本書的風格 — 涵蓋豐富的主題,而且每個主題皆由該領域中備受尊崇的權威專家帶領你深入探討。說真的,我們的團隊人手一本。」 — Bill Scott,Netflix,UI工程部總監 效能是網站成功與否的重要關鍵,然而,挾帶著日益豐富的內容並且運用大量的Ajax技術,現今的Web應用程式已迫使瀏覽器達到其處理能力的極限。Steve Souders,Google的Web效能佈道者及Yahoo!的前首席效能專家,在本書中提供了最寶貴的技術,協助你最佳化你的網站效能。 Souders的上一本暢銷書《High Performance Web Sites》在Web開發的世界裡捲起了漫天風雲,並且揭露出一項事實:網頁加載的總耗時中有80%是花費在客戶端上的。在《高效能網站建置指南》這本書中,Souders與其他八位專家級的特約作者針對改善網站效能提供了最佳實務以及實用建言,主要包括下列三個關鍵領域: ● JavaScript — …

book

初探深度學習|使用TensorFlow

by Reza Zadeh, Bharath Ramsundar

從線性迴歸到強化學習 “對想要進入深度學習這個令人興奮的領域的機器學習從業者來說,這是一本很棒的書。由於本書涵蓋廣泛的主題,當你想要進一步提升技術時,也會將它當成參考書來重新閱讀。” —Marvin Bertin Freenome機器學習研究工程師 TensorFlow是革命性的Google深度學習程式庫,本書將教你如何用它來解決具挑戰性的機器學習問題。只要你具備一些基本線性代數與微積分的背景知識,就可以在這本實用的書籍學到如何設計能夠檢查圖像物體、瞭解文字以及預測潛在藥物特性的系統,瞭解機器學習的基礎知識。 透過實際的案例傳授觀念,協助你從根本開始建立深厚的深度學習基礎知識。本書非常適合具備軟體系統設計經驗的實務開發者,或已熟悉腳本語言但不知道如何設計學習演算法的專家。 ‧學習TensorFlow的基本知識,包括如何執行基本的計算 ‧藉由建立簡單的學習系統瞭解相關數學基礎 ‧深入瞭解已被上千種app使用的全連結深度網路 ‧藉由超參數優化將原型轉換成高品質的模型 ‧用摺積神經網路處理圖像 ‧用遞迴神經網路處理神經語言資料集 ‧使用強化學習玩遊戲,例如井字遊戲 ‧用GPU與張量處理單元等硬體訓練深度網路

book

深度學習|內行人的做法

by Josh Patterson, Adam Gibson

雖然人們對機器學習展現了高度的興趣,但過高的期望往往無法讓專案走得太遠。機器學習(尤其是深度神經網路)在您的組織中,究竟能發揮什麼樣真正的作用呢?這本實戰指南不僅提供此主題相關的最實用資訊,還可協助您開始構建高效的深度學習網路。 本書提供了許多關於深度學習調整、平行化、向量化與構建流程的基礎知識。雖然本書是引用開源Deeplearning4j(DL4J)函式庫來開發生產級工作流程,但裡頭所介紹的基礎知識,適用於任何函式庫。透過真實世界中的範例,您將學習到如何運用DL4J訓練深度網路架構,以及在Spark與Hadoop上運行深度學習工作流程的方法與策略。 .了解神經網路進化到深度網路的歷程 .探索一些主要的深度網路架構,包括卷積網路(CNN)與遞廻網路(RNN) .學習如何針對特定的問題,找出正確對應的深度網路架構 .針對一般神經網路與特定的深度網路架構,完整介紹調整相關的基礎知識 .透過DL4J的工作流程工具DataVec,把向量化技術運用到不同的資料型態上 .了解如何在Spark與Hadoop上,以原生方式使用DL4J 名人推薦 「本書涵蓋在現實世界中從事深度學習時,開發者必須知道的所有事情。」 —— Grant Ingersoll, Lucidworks首席技術長

book

VMWARE錦囊妙計第二版

by Ryan Troy, Matthew Helmke

本錦囊妙計透過逐步漸進的解決方案,協助您在廣泛的網路環境中使用VMware ESXi。您將不僅能學習到基本知識-如何從硬體伺服器、電腦叢集、網路與儲存設備集中共享資源,接著透過虛擬機器來進行分配,並且也能學習到如何克服在監控系統、問題排除及安全性處理上所遭遇的阻礙。 本延伸的第二版涵蓋了vCloud Director和vShield雲端安全性的最新進展。本書適用於各種層級的系統管理員,VMware錦囊妙計也提供了可以協助您確定虛擬化需求的實用資訊。 .藉由vCloud Director邁入雲端,透過vSphere建立安全的虛擬資料中心 .透過命令列模式防護與監控您的虛擬化環境 .實現磁碟、SSD與SAN儲存設備的管理與組態 .探索資源管理的選項,如叢集、共享、熱添加/熱插拔的支援 .配置邏輯與實體網路,包括虛擬交換器、軟硬體介面 .透過ESXi自動化安裝使虛擬機器的複製更容易 .獲得組態配置與調校的實用技巧