JavaScript程序設計

JavaScript程序設計

作者: 迪奧尼西奧 (John David Dionisio) 托爾(Ray Toal)
出版社: 人民郵電
出版在: 2016-04-01
ISBN-13: 9787115418166
ISBN-10: 7115418160
裝訂格式: 平裝
總頁數: 368 頁





內容描述


<內容簡介>
  本書旨在通過從零開始介紹JavaScript 編程讓讀者理解計算機科學的基本思想和原理。書中內容豐富全面,闡述由淺入深。主要內容有:計算的相關知識、編程的基本概念、數據、語句、函數、事件、軟件架構、分佈式計算、圖形與動畫,此外還探討了正則表達式、遞歸、緩存等高級主題。

<作者簡介>
  John David Dionisio ,洛約拉馬利蒙特大學計算機科學教授,研究方向包括交互設計和計算機製圖,以及各類計算機應用學科。與Ray Toal另合著有The JavaScript Programming Language。  Ray Toal ,洛約拉馬利蒙特大學教授,同時也是Friendbuy和Criteo公司的諮詢顧問。從事計算機科學教研工作長達29年,在軟件開發和架構方面有20多年的從業經驗。

<目錄>
第1章計算的概念1 1.1計算是一門自然科學1 1.2計算的五大學科2 1.2.1計算機科學2 1.2.2軟件工程2 1.2.3計算機工程2 1 .2.4信息技術3 1.2.5信息系統3 1.3與計算相關的職業3 1.4關於計算的誤解4 ​​1.5本章小結5 1.6練習5 第2章編程7 2. 1學習編程7 2.2基本概念7 2.2.1瀏覽器地址欄8 2.2.2運行器 ​​頁面8 2.2.3交互式命令行10 2.2.4文件12 2.3程序的構成16 2.3.1表達式16 2.3.2變量17 2.3.3語句20 2.4編程慣例21 2.4.1註釋21 2.4.2編碼約定22 2.4. 3代碼質量檢查工具23 2.5 JavaScript編程語言24 2.6本章小結24 2.7練習25 第3章數據28 3.1數據類型28 3.2真值28 3.3數值29 3.3. 1數值運算30 3.3.2大小和精度的限制30 3.3.3 NaN 31 3.3.4十六進制數值31 3.4文本32 3.4.1字符、符號與字符集32 3.4.2字符串操作35 3.5 undefined與null 36 3.6對象37 3.6.1對象基礎37 3.6.2理解對象引用38 3.6.3對象原型40 3.6. 4自引用對象41 3.7數組41 3.8類型轉換44 3.8.1弱類型44 3.8.2顯式轉換45 3.8.3鬆散相等操作符47 3.9 typeof操作符 47 3.10本章小結48 3.11練習48 第4章語句52 4.1聲明語句52 4.2表達式語句52 4.3條件執行54 4.3.1 if語句54 4.3.2條件表達式56 4.3.3 switch語句56 4.3.4用查詢避免條件代碼58 4.3.5短路執行61 4.4迭代62 4.4.1 while和do-while語句62 4.4 .2 for語句63 4.4.3 for-in語句67 4.5中斷68 4.5.1 break和continue 69 4.5.2異常70 4.6應該避免的編碼風格72 4.6.1不分塊的複合語句72 4.6.2隱式分號73 4.6.3隱式聲明74 4.6.4遞增和遞減運算符74 4.6.5 with語句74 4.7本章小結74 4.8練習75 第5章函數78 5.1黑盒78 5.2定義和調用函數78 5.3示例80 5.3.1簡單的一行函數80 5.3.2驗證實參81 5 .3.3將對象引用作為參數傳送82 5.3.4先決條件83 5.3.5關註點的分離85 5.3.6斐波那契數列86 5.4作用域87 5.5作為對象的函數89 5.5.1函數的屬性89 5.5.2作為屬性的函數89 5.5.3構造器90 5.6上下文95 5.7高階函數96 5.8函數聲明與函數表達式 98 5.9本章小結99 5.10練習100 第6章事件105 6.1用戶互動105 6.1.1程序設計範例轉移105 6.1.2事件舉例:溫度轉換Web頁面106 6 .2定義用戶界面元素107 6.2.1 Web頁面是結構化文檔108 6.2.2生成用戶界面控件的元素109 6.3以編程方式訪問用戶界面元素112 6.3.1 document對象112 6.3.2 DOM屬性的樂趣114 6.3.3一個“玩耍”的地方115 6.3.4操控用戶界面控件116 6.3.5遍歷DOM 118 6.4事件處理程序122 6. 4.1事件處理程序的骨架122 6.4.2事件處理程序是函數,是對象123 6.5事件對象125 6.6事件實現細節126 6.6.1事件捕獲與冒泡126 6.6 .2默認操作127 6.6.3指定事件處理程序129 6.6.4時間流逝觸發的事件130 6.6.5多點觸摸、手勢和物理事件131 6.7案例研究:井字棋135 6.7.1文件與連接135 6.7.2初始化137 6.7.3事件處理139 6.7.4業務邏輯139 6.8本章小結140 6.9練習140 第7章軟件構架146 7 .1軟件工程活動146 7.2面向對象的設計與編程146 7.2.1對象族147 7.2.2繼承149 7.2.3信息隱藏153 7.2.4屬性描述符 155 7 .3 JavaScript標準對象157 7.3.1內置對象157 7.3.2 Web瀏覽器宿主對象166 7.4模塊166 7.4.1簡單模塊167 7.4.2作為模塊的井字棋遊戲168 7.5 jQuery JavaScript庫171 7.6性能175 7.6.1運行時效率175 7.6.2空間效率177 7.6.3加載時間效率178 7.6.4用戶界面效率179 7. 7單元測試181 7.7.1一個簡單的例子182 7.7.2 QUnit測試框架183 7.7.3軟件開發過程中的測試186 7.8本章小結187 7.9練習187 第8章分佈式計算193 8.1分佈式計算模型193 8.2數據交互格式194 8.2.1純文本194 8.2.2 XML 195 8.2.3 JSON 198 8.2.4 YAML 200 8.3同步通信與異步通信201 8.4 Ajax 202 8.4.1 jQuery中的Ajax 202 8.4.2沒有庫的Ajax 206 8.5設計分佈式應用程序208 8.5.1統一資源標識符208 8.5.2 REST 211 8.5.3分佈式應用程序關註點的分離213 8.5.4服務器端技術* 216 8.6安全性217 8.6.1 Web、不利因素和沙盒217 8 .6.2同源策略218 8.6.3跨站腳本222 8.6.4 mashup 224 8.7案例研究:事件與趨勢主題225 8.7.1日期選擇用戶界面229 8.7.2 Ajax連接230 8.7.3結果處理232 8.7.4數據(mashup)顯示234 8.8本章小結235 8.9練習236 第9章圖形與動畫246 9.1基礎知識246 9.1. 1坐標空間246 9.1.2色彩247 9.1.3像素與對象/矢量248 9.1.4動畫250 9.2 HTML和CSS 250 9.2.1圖形的HTML元素250 9.2. 2 CSS 251 9.2.3可視屬性254 9.2.4絕對位置257 9.2.5案例研究:條形圖258 9.2.6案例研究:漢諾塔顯示259 9.3 HTML和CSS中的動畫262 9.3.1恆定速度262 9.3.2淡入與淡出263 9.3.3實現其他屬性的動畫264 9.3.4緩動動畫264 9.3.5聲明性CSS動畫265 9.4 canvas元素266 9.4.1實例化canvas 266 9.4.2渲染上下文266 9.4.3繪製矩形267 9.4.4繪製直線和多邊形268 9.4.5繪製弧和圓269 9.4.6繪製貝塞爾曲線和二次曲線270 9.4.7處理圖像271 9.4.8變換274 9.4.9動畫278 9.4.10 canvas舉例280 9. 5 SVG 283 9.5.1在Web瀏覽器中查看SVG 284 9.5.2 SVG案例研究:一個貝塞爾曲線編輯器286 9.5.3繪畫中的對象287 9.5.4讀寫屬性287 9.5.5交互性(事件處理歸來) 290 9.5.6其他SVG功能291 9.6用WebGL實現3D圖形292 9.6.1 WebGL是3D canvas 292 9.6.2案例研究:謝爾賓斯基三角293 9.6.3定義3D數據295 9.6.4著色器代碼295 9.6.5繪製場景296 9.6.6交互性與事件297 9.7其他客戶端圖形技術299 9.7.1 Flash 299 9.7.2 Java 299 9.7.3 VML 300 9.8本章小結300 9.9練習300 第10章高級主題310 10.1正則表達式310 10.1. 1正則表達式簡介310 10.1.2捕獲311 10.1.3數量詞312 10.1.4向後引用313 10.1.5正則表達式修飾符313 10.1.6 RegExp構造器314 10 .1.7正則表達式的更多內容314 10.2遞歸314 10.2.1什麼是遞歸315 10.2.2遞歸經典示例316 10.2.3遞歸與家族樹322 10.2.4什麼時候不用遞歸324 10.3緩存325 10.4 MapReduce 327 10.4.1使用map、filter和reduce 327 10.4.2實現329 10.4.3大規模數據處理中的MapReduce 330 10.5動態創建事件處理程序330 10.6本章小結333 10.7練習333 附錄A JavaScript語言參考337 附錄B數值編碼352 附錄C Unicode 355 術語表363 參考文獻366




相關書籍

Flutter 實戰

作者 杜文

2016-04-01

HTML5 Digital Classroom (Paperback)

作者 Jeremy Osborn AGI Creative Team

2016-04-01

圖解資料結構 -- 使用 JavaScript

作者 吳燦銘

2016-04-01