JavaScript編程思想:從ES5到ES9 ( 簡體 字) |
作者:柯霖廷 | 類別:1. -> 程式設計 -> 網路編程 -> Javascript |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 51026 詢問書籍請說出此書號!【缺書】 NT售價: 590 元 |
出版日:5/1/2019 |
頁數:627 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302526612 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:現今仍然被使用于地球上的編程語言繁多,可分別實現特定任務、功能與運作邏輯。有些編程語言僅被內建于特定集成開發環境(IDE, integrated development environment),并不夠普及。現代流行的編程語言,例如JavaScript、Python、Java、C、C++、C#、PHP、SQL、R等,被內建于由不同軟件業者提供的集成開發環境里,進而蔚為風潮! 為了培養穩定流暢的編程思維邏輯和源代碼的銜接能力,程序開發者在初學階段逐漸學習多種編程語言,肯定是必經之路!一開始挑選現代較為流行的編程語言,可獲得相當多的學習資源,進而大幅降低所耗費的心力與時間。 JavaScript編程語言從20多年前問世以來,逐漸風行于全球各國!如今被內建于不同軟件平臺上的許多集成開發環境中,進而觸及更為寬廣、更多層次的開發領域。因此,很多較為資深的程序開發員通過JavaScript編程語言來實現多種應用程序。 希望長年累月的高級程序開發員、行之有年的JavaScript編程工作者、對JavaScript編程有興趣者,甚至涉世未深的初學者,都能通過本書極為豐富的實戰示例,提升自己的編程技術能力! 本書分為21章,從基礎到高級,主要闡釋JavaScript編程各層面的語法、觀念、實戰示例與習題。其內容深入淺出,包括如下所有的實戰主題: ? 表達式(expression)與運算符(operator) ? 數據類型(data type) ? 條件(condition)和循環(loop)語句 ? 函數(function)與方法(method) ? 處理數值(number)、字符串(string)、數組(array)、自定義對象(custom object / user-defined object)與日期和時間(date and time) ? DOM(document object model)的事件處理器(event handler)和元素實例(element instance) ? Reflect、Proxy和Intl對象(object) ? window.navigator、window.document和BOM(browser object model)對象實例(object instance) ? 類(class) ? 錯誤處理(error handling) ? 數據的驗證與傳輸(data validation and transmission) ? 響應式機制與源代碼加密 另外,本書的源代碼示例文檔也可掃描下方的二維碼下載。若下載時遇到問題,請將標題為【下載問題——JavaScript編程思想:從ES5到ES9】的電子郵件發送,后續交由專員為您排困解難。 由于編者水平有限,書中難免存在疏漏之處,懇請廣大讀者批評指正。
柯霖廷 2019年3月 |
內容簡介:本書從基礎到高級,主要闡釋JavaScript編程各層面的語法、觀念、實戰示例與習題。其內容深入淺出,主要內容包括:表達式與運算符,數據類型,條件和循環語句,函數與方法,處理數值、字符串、數組、自定義對象與日期和時間,DOM的事件處理和元素實例,Reflect、Proxy和Intl對象,window.navigator、window.document和BOM的多個對象實例,類,錯誤處理,數據的驗證與傳輸,響應式機制與源代碼加密。 本書含有充足且具有創意的實戰示例,利于讀者學習、理解和實際運用。另外,各章末的習題也是用來演練學習成果的良方,可起到事半功倍的奇效。本書既適合業界的程序開發者閱讀,也可作為大中專院校與培訓機構的教學參考書。 |
目錄:第1章ECMAScript簡介 1 1.1概述 1 1.1.1ECMAScript各版本 1 1.1.2關于JavaScript 2 1.1.3其他腳本語言 2 1.2語法的實現 2 1.2.1源代碼 2 1.2.2語句 3 1.2.3表達式 5 1.2.4子程序 10 1.2.5注釋 11 1.2.6關鍵字 11 1.3開發環境 12 1.3.1瀏覽器 13 1.3.2Node.js 14 1.3.3其他JavaScriptShell 14 1.4練習題 15 第2章表達式與運算符 17 2.1操作數 17 2.1.1常量(ES6) 17 2.1.2變量(ES6) 18 2.1.3子表達式 23 2.1.4函數的返回值 25 2.2運算符 26 2.2.1算術運算符(ES7) 27 2.2.2賦值運算符 30 2.2.3比較運算符 33 2.2.4邏輯運算符 34 2.2.5條件運算符 36 2.2.6類型運算符 37 2.2.7按位運算符 41 2.2.8括號運算符 46 2.2.9擴展運算符(ES6) 49 2.2.10逗號運算符 51 2.2.11刪除運算符 51 2.2.12運算符的優先級(ES6) 53 2.3練習題 55 第3章數據類型 57 3.1數值類型 57 3.1.12n進制的字面量(ES6) 57 3.1.2數值的比較(ES6) 58 3.1.3數值的正負符號(ES6) 59 3.1.4數值的截斷(ES6) 60 3.1.5數值的特殊格式(ECMA-402) 63 3.1.6整數值的安全范圍(ES6) 66 3.2布爾類型 68 3.3數組類型 70 3.4對象類型 73 3.5字符串類型 75 3.5.1一般字符串 75 3.5.2格式化字符串(ES6) 77 3.5.3日期與時間格式的字符串(ES6) 80 3.6集合與地圖類型 82 3.6.1集合類型(ES6) 82 3.6.2地圖類型(ES6) 84 3.7數據類型的轉換(ES6) 85 3.8練習題 88 第4章條件和循環語句 90 4.1條件語句 90 4.1.1if語句 90 4.1.2switch語句 94 4.2循環語句 96 4.2.1for相關語句(ES6) 96 4.2.2while相關語句 104 4.2.3break與continue語句 106 4.3練習題 108 第5章函數與方法 110 5.1函數的定義 110 5.1.1不同形式的函數(ES6) 110 5.1.2函數名稱(ES6) 124 5.1.3參數(ES6) 125 5.1.4主體 132 5.1.5返回數據與void關鍵字(ES6) 135 5.1.6定義的位置(ES6) 137 5.1.7函數的調用形式(ES6) 139 5.2生成器 142 5.2.1迭代器協議與生成器(ES6) 142 5.2.2生成器函數的定義和用法(ES6) 143 5.3搭配Promise對象 144 5.3.1Promise對象的用法(ES6、ES9) 144 5.3.2聚集多個Promise對象(ES6) 148 5.3.3異步函數與等待表達式(ES8) 154 5.4練習題 156 第6章處理數值 159 6.1Number對象的內置屬性 159 6.1.1最大的正數和安全整數(ES6) 159 6.1.2最小的正數和安全整數(ES6) 160 6.1.3正負無窮值 162 6.1.4非數值的判斷(ES6) 162 6.1.5浮點數運算的誤差值(ES6) 166 6.2Number對象的內置函數 167 6.2.1轉換為特定進制的數碼字符串 167 6.2.2處理小數格式 170 6.2.3轉換為數值 172 6.2.4判斷是否為整數或有限數(ES6) 175 6.3Math對象 177 6.3.1Math對象的常量屬性 177 6.3.2Math對象的函數(ES6) 178 6.4練習題 189 第7章處理字符串 190 7.1String對象 190 7.1.1子字符串的索引值 190 7.1.2特定模式的子字符串的搜索(ES6) 192 7.1.3子字符串的獲取 194 7.1.4子字符串的替換 196 7.1.5字符串的大小寫轉換 198 7.1.6不同字符串的連接 199 7.1.7字符串的重復連接 200 7.1.8字符串的分割 200 7.1.9特定字符和Unicode數碼的雙向轉換(ES6) 202 7.1.10重復填充子字符串于擴充后的字符串中(ES8) 204 7.2將冗長的字符串分割為多行(ES6) 205 7.3字符串的擴展運算(ES6) 207 7.4字符串的插值格式化(ES6) 207 7.5原始字符串(ES6) 210 7.6正則表達式與黏性匹配(ES6) 211 7.7萬國碼字面量(ES6) 214 7.8練習題 216 第8章處理數組 217 8.1Array對象 217 8.1.1創建特定數組的副本(ES6) 217 8.1.2創建來自可迭代對象的新數組(ES6) 220 8.1.3數組元素數據所構成的字符串 223 8.1.4數組元素的放入和取出 224 8.1.5新增或刪除數組的多個元素 226 8.1.6合并多個數組 227 8.1.7切割數組 228 8.1.8尋找符合特定條件的數組元素(ES6) 229 8.1.9自我復制并覆蓋數組的部分元素(ES6) 230 8.1.10判斷數組各元素是否符合特定條件 232 8.1.11數組部分元素的填充(ES6) 233 8.1.12篩選出符合特定條件的數組元素(ES6) 235 8.1.13循環訪問數組各元素 236 8.1.14判斷是否為數組的實例 237 8.1.15訪問并漸次處理數組各元素的數據 239 8.1.16反轉數組各元素的順序 244 8.1.17數組各元素的重新排序 245 8.1.18判斷特定元素的存在性(ES7) 246 8.2數組的擴展運算(ES6) 248 8.3數組元素的匹配(ES6) 249 8.4數據類型化的按位數組(ES6) 250 8.5練習題 252 第9章處理自定義對象 253 9.1自定義對象的屬性名稱、屬性數據與副本 253 9.1.1對象屬性的名稱或數據所構成的數組(ES8) 253 9.1.2精細創建特定對象實例的副本 255 9.2自定義對象實例之間的相同性與合并 258 9.2.1判斷兩個對象實例的數據是否完全相同(ES6) 258 9.2.2合并多個對象實例的所有成員(ES6) 260 9.3對象實例的簡短自定義語法(ES6) 261 9.4自定義對象實例的動態成員名稱(ES6) 262 9.5對象實例的匹配(ES9) 262 9.6練習題 264 第10章處理日期和時間 265 10.1處理日期 265 10.1.1獲取日期相關數據 265 10.1.2設置日期相關數據 267 10.1.3帶有日期的格式化字符串 268 10.2處理時間 270 10.2.1獲取時間相關數據 270 10.2.2設置時間相關數據 272 10.2.3帶有時間的格式化字符串 274 10.2.4處理紀元時間至今的毫秒數(ES6) 275 10.3練習題 277 第11章DOM的事件處理(一) 278 11.1鼠標事件 278 11.1.1單擊和雙擊事件 278 11.1.2上下文菜單事件 281 11.1.3鼠標按下與松開事件 282 11.1.4鼠標指針相關進出事件 284 11.1.5鼠標移動事件 287 11.2鍵盤事件 289 11.2.1按壓與按下按鍵事件 289 11.2.2松開按鍵事件 289 11.3網頁內容的裝卸事件 290 11.3.1出現錯誤事件 290 11.3.2加載和頁面顯示事件 292 11.3.3卸載和頁面隱藏事件 294 11.3.4先于卸載事件 295 11.3.5網址散列變化事件 296 11.3.6滾動事件 298 11.4表單事件 299 11.4.1內容變化事件 299 11.4.2獲取和失去焦點相關事件 300 11.4.3輸入事件 302 11.4.4無效事件 303 11.4.5重置事件 304 11.4.6搜索事件 306 11.4.7選定文本事件 307 11.4.8提交事件 308 11.5練習題 309 第12章DOM的事件處理(二) 311 12.1拖動事件 311 12.1.1正在拖動事件 311 12.1.2拖動結束事件 313 12.1.3拖動進入事件 315 12.1.4拖動離開事件 316 12.1.5拖動懸停事件 318 12.1.6拖動開始事件 319 12.1.7放下事件 321 12.2剪貼板事件 323 12.2.1復制事件 324 12.2.2剪切事件 325 12.2.3粘貼事件 325 12.3視頻和音頻事件 325 12.3.1加載相關事件 326 12.3.2清空事件 328 12.3.3播放結束事件 329 12.3.4異常相關事件 330 12.3.5播放與暫停相關事件 331 12.3.6播放速率變化事件 332 12.3.7播放位置變化相關事件 333 12.3.8音量變化事件 335 12.3.9緩沖等待事件 335 12.4動畫及過渡事件 336 12.4.1動畫相關事件 336 12.4.2過渡結束事件 338 12.5其他事件 339 12.5.1details元素實例的切換事件 340 12.5.2鼠標滾輪事件 341 12.5.3觸摸相關事件 342 12.5.4接收服務器數據相關事件 344 12.6練習題 346 第13章Reflect對象 347 13.1Reflect對象介紹(ES6) 347 13.2間接應用特定函數(ES6) 349 13.3創建特定對象的實例(ES6) 351 13.4精細定義新屬性(ES6) 353 13.5刪除特定屬性(ES6) 354 13.6獲取特定屬性的數據(ES6) 355 13.7返回特定屬性的描述器(ES8) 356 13.8返回特定對象的原型(ES6) 359 13.9判斷特定屬性的存在性(ES6) 360 13.10判斷與設置特定對象的擴展性(ES6) 361 13.11簡易定義新屬性(ES6) 363 13.12重新設置特定對象的原型(ES6) 365 13.13返回與列舉特定對象的自定義屬性(ES6) 367 13.14練習題 370 第14章Proxy對象、Intl對象和navigator對象實例 371 14.1Proxy對象 371 14.1.1創建訪問代理機制的構造函數(ES6) 372 14.1.2確定被代理的特定對象(ES6) 373 14.1.3自定義代理函數(ES6) 373 14.1.4調試訪問代理機制(ES6) 375 14.2Intl對象 376 14.2.1精確比較語言敏感的字符串(ECMA-402) 376 14.2.2語言敏感的日期與時間格式(ECMA-402) 378 14.2.3語言敏感的數值格式(ECMA-402) 379 14.2.4返回規范化語言環境名稱(ECMA-402) 380 14.3window.navigator對象實例 381 14.3.1獲取瀏覽器相關信息 381 14.3.2獲取當前地理定位相關數據 383 14.4練習題 385 第15章window.document對象實例 386 15.1返回焦點所在的元素 386 15.2附加事件處理器至特定元素 388 15.3收養特定節點 390 15.4返回所有錨點元素構成的集合 392 15.5返回當前網址的相關屬性 393 15.6在當前網頁中動態生成HTML源代碼 394 15.7內含特定服務器相關數據的cookie 396 15.8返回當前網頁編碼字符集的名稱 398 15.9創建代表新屬性的節點 398 15.10創建代表新注釋的節點 399 15.11創建代表新片段或新元素的節點 400 15.12創建代表新文本的節點 402 15.13返回當前網頁的根元素 404 15.14訪問當前網址的域名 405 15.15返回所有embed元素構成的集合 406 15.16返回所有form元素實例構成的集合 407 15.17返回特定身份識別碼的元素實例 408 15.18返回被設置帶有特定CSS類名的所有元素實例的集合 411 15.19返回特定標簽名稱的所有元素實例的集合 414 15.20判斷當前網頁是否存在焦點 416 15.21返回當前網頁的head元素實例 417 15.22返回當前網頁所有image元素實例的集合 418 15.23創建當前網頁或者子網頁里的特定節點實例的副本 420 15.24獲取當前網頁的最近被修改的日期和時間 423 15.25返回當前網頁中的所有超鏈接元素實例的集合 425 15.26返回特定CSS選擇器名稱對應的元素實例或集合 426 15.27返回和處置當前網頁的加載狀態 429 15.28返回跳轉前的網址 430 15.29解除已被附加的事件處理器 432 15.30返回當前網頁中的所有script元素實例構成的集合 433 15.31訪問當前網頁的標題文本 434 15.32練習題 435 第16章DOM的元素實例 437 16.1設置焦點跳轉至特定元素實例上的快捷鍵 437 16.2創建特定元素實例的動畫效果(WebAnimations) 439 16.3添加新元素實例和訪問特定元素實例的所有屬性 441 16.4使得特定元素實例失去和獲取焦點 445 16.5訪問子節點或子元素的實例 447 16.6訪問被應用在特定元素實例的所有CSS類名 450 16.7模擬鼠標單擊特定元素實例的動作 454 16.8獲取特定元素的尺寸、坐標與可定位的上層元素 455 16.9比較兩個元素之間的位置關系 458 16.10判斷是否存在特定子元素或可被編輯 461 16.11訪問特定元素實例的文本被書寫的方向 463 16.12返回頭尾的子節點實例或子元素實例 464 16.13訪問或刪除特定元素實例的特定屬性 467 16.14訪問特定元素實例的常見屬性的數據 469 16.15判斷是否存在任何子節點實例 472 16.16在特定子節點實例之前新增另一子節點實例 473 16.17判斷兩個節點實例的內容是否完全相同 475 16.18返回下一個或上一個兄弟節點實例 478 16.19返回特定節點實例的相關數據 479 16.20合并多個相鄰的文本子節點實例 481 16.21返回父節點實例 484 16.22刪除或替換子節點實例 486 16.23獲取滾動條的相關數據 488 16.24練習題 491 第17章BOM的多個對象實例 492 17.1window對象實例 492 17.1.1顯示多種對話框與搜索特定文本 492 17.1.2滾動至坐標或滾動特定距離 496 17.2screen對象實例 498 17.3history對象實例 499 17.4location對象實例 501 17.5練習題 503 第18章類 504 18.1類的定義和繼承 504 18.1.1類的定義(ES6) 505 18.1.2類的繼承(ES6) 507 18.2類的靜態成員 508 18.2.1靜態成員的概念和定義(ES6) 509 18.2.2靜態成員的運用(ES6) 511 18.3類的設置器和取得器 511 18.3.1設置器和取得器的概念和定義(ES6) 512 18.3.2設置器和取得器的運用(ES6) 513 18.4練習題 514 第19章錯誤處理 516 19.1異常錯誤的種類 516 19.1.1語法錯誤 517 19.1.2數據類型錯誤 518 19.1.3評估錯誤 520 19.1.4范圍錯誤 522 19.1.5引用錯誤 524 19.1.6網址在編碼或解碼上的錯誤 526 19.1.7邏輯錯誤 527 19.2處置特定異常錯誤 529 19.2.1試驗與捕獲特定異常錯誤 529 19.2.2拋出自定義的異常錯誤 530 19.3調試機制 531 19.3.1嚴格模式 531 19.3.2源代碼的斷點設置和逐句執行 535 19.4練習題 536 第20章數據的驗證與傳輸 538 20.1HTML表單的內置驗證 538 20.1.1必填驗證 538 20.1.2字符個數和數值范圍的驗證 540 20.2自定義的驗證 542 20.2.1文本字段的模式驗證 544 20.2.2JavaScript源代碼實現的驗證 545 20.3異步數據傳輸 548 20.3.1AJAX的工作原理 549 20.3.2AJAX的編程方式 552 20.4練習題 561 第21章響應式機制 563 21.1通過CSS語法的版本 563 21.1.1頁面的元信息 565 21.1.2媒體查詢 565 21.2通過JavaScript語法的版本 567 21.2.1簡易判斷窗口尺寸的版本 572 21.2.2直接變更CSS規則的版本 575 21.3源代碼的加密 579 21.3.1改寫HTML與CSS成為JavaScript源代碼 580 21.3.2JavaScript源代碼的全數加密 585 21.4練習題 586 附錄練習題答案 588
|
序: |