0人評分過此書

精通JavaScript

出版日期
2021
閱讀格式
PDF
書籍分類
學科分類
ISBN
9789865029890

本館館藏

借閱規則
當前可使用人數 30
借閱天數 14
線上看 0
借閱中 0
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
內容簡介:導入現代程式設計原則
精通網頁程式語言

當今幾乎每個網頁應用程式的核心裡都有JavaScript的身影,從Twitter這類的社群應用程式到Phaser、Babylon等在瀏覽器環境下設計的遊戲框架。在一般人眼裡,JavaScript是程式初學者較容易上手的入門語言,但其本質其實相當靈活而且複雜,可用於開發所有規模大小的應用程式。

《Eloquent JavaScript 第三版》終於在千呼萬喚下登場了,經過徹底修訂的內容將帶讀者深入JavaScript語言,示範如何寫出漂亮同時又有效率的程式碼。本次更新納入全新功能,例如:類別表示法、箭頭函式、迭代器、非同步函式、字串範本及區塊作用範圍。

作者Haverbeke藉由程式範例進行沉浸式教學,讓讀者從第一章開始就進入程式碼的世界。同時,利用章節末的練習題和完整章節的實作專案,提供讀者自己撰寫程式的機會,累積動手的經驗。本書帶領讀者從JavaScript語言的基礎結構、控制結構、函式及資料結構學起,幫助讀者先撰寫出基本的程式;接著學習處理程式發生的錯誤、修復程式臭蟲、模組化以及非同步程式設計,再推進到網頁瀏覽器的範疇,學習如何使用JavaScript設計瀏覽器相關程式。讀者跟著書中的幾個實作專案,例如,設計瀏覽器遊戲、簡單的程式語言和繪圖程式,還能從中學到:

‧了解程式設計的基本要素,包括程式語法、控制和資料
‧藉由物件導向和函式語言程式設計兩大技巧來組織與釐清程式碼
‧撰寫瀏覽器腳本及開發基礎的網頁應用程式
‧發揮文件物件模型(DOM)的效用,與瀏覽器進行互動
‧利用Node.js環境建置伺服器與開發工具函式

看到這裡,你是不是覺得自己已經精通這項網頁程式語言了呢?

本書提供的線上封閉測試環境中有書中所有的原始程式碼。讀者可在這個測試環境中編輯、執行程式碼,並且立即看到程式碼的輸出結果。
  • 前言
    • 程式設計的基本原則
    • 程式語言的重要性
    • JavaScript的歷史與發展
    • 程式碼的學習與使用方法
    • 本書內容簡介
    • 本書編排慣例
  • PART I:程式語言
    • 1 資料值、資料型態與運算子
      • 資料值
      • 數字
      • 算術
      • 特殊數字
      • 字串
      • 一元運算子
      • 布林值
      • 比較大小
      • 邏輯運算子
      • 空值
      • 自動轉換型態
      • 短路邏輯運算子
      • 本章重點回顧
    • 2 程式結構
      • 表達式與陳述式
      • 綁定
      • 變數命名
      • 執行環境
      • 函式
      • console.log函式
      • 回傳值
      • 控制流結構
      • 條件控制結構
      • while & do迴圈結構
      • 程式碼縮排
      • for迴圈
      • 跳出迴圈
      • 簡化變數的更新方法
      • 使用switch結構指派變數值
      • 大小寫混用的命名風格
      • 註解
      • 本章重點回顧
      • 練習題
      • 迴圈三角形(Looping a Triangle)
      • 經典題型FizzBuzz
      • 西洋棋棋盤(Chessboard)
    • 3 函式
      • 函式的定義
      • 變數的作用範圍
      • 巢狀範圍
      • 函式值
      • 函式宣告法
      • 箭頭函式
      • 呼叫堆疊
      • 選擇性參數
      • 閉包
      • 遞迴
      • 函式發展
      • 函式與副作用
      • 本章重點回顧
      • 練習題
      • 最小值(Minimum)
      • 遞迴(Recursion)
      • 計算字元數(Bean Counting)
    • 4 資料結構:物件與陣列
      • 松鼠人
      • 資料集
      • 屬性
      • 方法
      • 物件
      • 可變異性
      • 松鼠人觀察日誌
      • 計算相關係數
      • 陣列迴圈
      • 分析結果
      • 常用的陣列技巧
      • 字串及其相關屬性
      • 其餘參數
      • Math物件
      • 陣列解構
      • JSON表示法
      • 本章重點回顧
      • 練習題
      • 範圍內的數字總和(The Sum of a Range)
      • 反轉陣列(Reversing an Array)
      • 資料結構—List(A List)
      • 深入比較(Deep Comparison)
    • 5 高階函式
      • 抽象
      • 抽象通用性
      • 高階函式
      • 字元集
      • 過濾陣列
      • 陣列轉換—map 方法
      • 加總陣列值—reduce方法
      • 組合性
      • 字串與字元編碼
      • 辨識文字
      • 本章重點回顧
      • 練習題
      • 陣列扁平化(Flattening)
      • 自訂Loop函式(Your Own Loop)
      • 實作every函式(Everything)
      • 主要書寫方向(Dominant Writing Direction)
    • 6 物件的秘密
      • 封裝
      • 方法
      • 原型
      • 類別
      • 類別表示法
      • 覆蓋原型屬性
      • Map物件
      • 多型
      • 資料型態Symbol
      • 迭代器介面
      • getter、setter和靜態方法
      • 繼承
      • instanceof運算子
      • 本章重點回顧
      • 練習題
      • Vector型態(A Vector Type)
      • 群組(Groups)
      • 迭代群組(Iterable Groups)
      • 借用其他物件的方法(Borrowing a Method)
    • 7 實作專案:宅配機器人
      • 綠野村
      • 宅配任務
      • 持久化資料
      • 模擬機器人的行為
      • 郵務車路線
      • 路徑搜尋
      • 練習題
      • 衡量機器人的能力(Measuring a Robot)
      • 改善機器人效率(Robot Efficiency)
      • 持久化群組(Persistent Group)
    • 8 臭蟲與錯誤
      • 程式語言
      • 嚴格模式
      • 資料型態
      • 自動測試
      • 偵錯
      • 異常管理
      • 例外情況
      • 例外處理
      • 選擇性攔截例外情況
      • 斷言
      • 本章重點回顧
      • 練習題
      • 再接再厲(Retry)
      • 上鎖的箱子(The Locked Box)
    • 9 規則運算式
      • 建立規則運算式
      • 配對測試
      • 字元集
      • 重複比對部分模式
      • 運算式分組
      • 分組比對
      • 日期類別
      • 單詞邊界
      • 模式選項
      • 比對機制
      • 回溯
      • replace方法
      • 貪婪模式
      • 動態建立RegExp物件
      • search方法
      • lastIndex屬性
      • 應用迴圈比對
      • 剖析INI檔案
      • 國際字元
      • 本章重點回顧
      • 練習題
      • Regexp 高爾夫(Regexp Golf)
      • 更換引號風格(Quoting Style)
      • 比對數字(Numbers Again)
    • 10 模組
      • 建立模組區塊
      • 套件
      • 權宜之計下的模組
      • 將資料轉換為程式碼
      • 模組規範CommonJS
      • 模組規範ECMAScript
      • 模組的建立與封裝
      • 模組設計
      • 本章重點回顧
      • 練習題
      • 模組化機器人(A Modular Robot)
      • 道路模組(Roads Module)
      • 循環相依性(Circular Dependencies)
    • 11 非同步程式設計
      • 非同步性
      • 烏鴉世界的技術
      • 回呼函式
      • Promise類別
      • 異常
      • 建立網路的難度很高
      • promise物件的集合
      • 網路洪泛
      • 訊息選路
      • async函式
      • 生成器函式
      • 事件迴圈
      • 非同步錯誤
      • 本章重點回顧
      • 練習題
      • 手術刀追跡程式(Tracking the Scalpel)
      • 建立Building Promise.all 函式(Building Promise.all)
    • 12 實作專案:自創一個小型的程式語言
      • 剖析
      • 求值器
      • 特殊語法格式
      • 程式開發環境
      • 函式
      • 編譯程式
      • 秘技
      • 練習題
      • 陣列(Arrays)
      • 閉包(Closure)
      • 註解(Comments)
      • 修正作用範圍
  • PART II:瀏覽器
    • 13 Javascript與瀏覽器
      • 電腦網路與網際網路
      • 網頁
      • HTML
      • HTML與JavaScript
      • 沙盒環境
      • 相容性與瀏覽器爭霸戰
    • 14 文件物件模型
      • 文件結構
      • 樹狀結構
      • 介面標準
      • 樹狀結構內的移動
      • 尋找樹狀結構內的元素
      • 修改文件
      • 建立節點
      • 屬性
      • 版面配置
      • 風格
      • CSS寫作風格
      • Query選擇器
      • 定位與動畫
      • 本章重點回顧
      • 練習題
      • 建立表格(Build a Table)
      • 從標籤查詢名稱(Elements by Tag Name)
      • 貓與帽子(The Cat’s Hat)
    • 15 事件處理
      • 事件處理器
      • 事件與DOM節點
      • 事件物件
      • 事件傳播
      • 預設動作
      • 鍵盤事件
      • 游標事件
      • 點擊滑鼠
      • 移動滑鼠
      • 觸控事件
      • 捲動事件
      • 焦點事件
      • 載入事件
      • 事件與事件迴圈
      • 計時器
      • 降低事件觸發頻率
      • 本章重點回顧
      • 練習題
      • 氣球(Balloon)
      • 滑鼠的拖曳軌跡(Mouse Trail)
      • 分頁式介面(Tabs)
    • 16 實作專案:2D平面遊戲
      • 遊戲設計
      • 應用技術
      • 製作遊戲關卡
      • 讀取遊戲關卡
      • 角色物件
      • 封裝帶來的負擔
      • 繪製遊戲畫面
      • 動作與碰撞
      • 更新角色物件
      • 追蹤鍵盤事件
      • 執行遊戲
      • 練習題
      • 遊戲結束(Game Over)
      • 暫停遊戲(Pausing the Game)
      • 怪物(A Monster)
    • 17 繪圖:Canvas元素
      • SVG向量圖
      • Canvas元素
      • 繪製直線與平面
      • 繪製路徑
      • 繪製曲線
      • 繪製圓餅圖
      • 繪製文字
      • 繪製圖片
      • 變形
      • 儲存與清除變形效果
      • 回頭改造遊戲
      • 選擇繪圖介面
      • 本章重點回顧
      • 練習題
      • 形狀(Shapes)
      • 圓餅圖(The Pie Chart)
      • 彈跳球(A Bouncing Ball)
      • 預先計算鏡像圖(Precomputed Mirroring)
    • 18 HTTP與表單
      • 通訊協定
      • 瀏覽器與HTTP
      • Fetch介面
      • HTTP運行的沙盒環境
      • HTTP的優勢
      • HTTP的安全性
      • 表單欄位
      • 焦點事件
      • 欄位失效
      • 將表單與其元素視為一體
      • 文字欄位
      • 核取方塊與單選按鈕
      • 選項欄位
      • 檔案欄位
      • 將資料儲存在客戶端
      • 本章重點回顧
      • 練習題
      • 內容協商(Content Negotiation)
      • 編寫JavaScript程式的工作環境(A JavaScript Workbench)
      • 康威生命遊戲(Conway’s Game of Life)
    • 19 實作專案:小畫家線上版
      • 編輯器介面元件
      • 應用程式狀態
      • 建立DOM結構
      • 畫布
      • 應用程式
      • 繪圖工具
      • 儲存與載入圖檔
      • 復原歷史紀錄
      • 開始動手畫吧
      • 為何瀏覽器技術如此之難?
      • 練習題
      • 快捷鍵(Keyboard Bindings)
      • 繪圖效率(Efficient Drawing)
      • 繪製圓形(Circles)
      • 繪製直線(Proper Lines)
  • PART III:NODE開發環境
    • 20 伺服器端開發環境:NODE.JS入門
      • 發展背景
      • node命令
      • node模組
      • 安裝NPM
      • NPM套件檔案
      • NPM版本
      • 檔案系統模組
      • HTTP模組
      • Stream介面
      • 檔案伺服器
      • 本章重點回顧
      • 練習題
      • 搜尋工具(Search Tool)
      • 建立目錄(Directory Creation)
      • 在網站上提供公用空間(A Public Space on the Web)
    • 21 實作專案:技能交流網站
      • 設計網站
      • 長時輪詢
      • HTTP介面
      • 伺服器端
      • 路由機制
      • 提供檔案服務
      • 演講資源
      • 支援長時輪詢
      • 客戶端
      • HTML
      • 動作
      • 渲染元件
      • 輪詢
      • 應用程式
      • 練習題
      • 在硬碟裡留存資料(Disk Persistence)
      • 重置評論欄位(Comment Field Resets)
    • 22 提升JavaScript效能的技巧
      • 分段式編譯
      • 圖形配置
      • 定義圖形
      • 力導向配置圖
      • 避免冗事
      • 剖析
      • 內聯函式
      • 減少產出垃圾
      • 垃圾回收機制
      • 動態型態
      • 本章重點回顧
      • 練習題
      • 路徑搜尋(Pathfinding)
      • 計時(Timing)
      • 最佳化(Optimizing)
  • 解題提示
    • 第2章:程式結構
      • 迴圈三角形(Looping a Triangle)
      • 經典題型FizzBuzz
      • 西洋棋棋盤(Chessboard)
    • 第3章:函式
      • 最小值(Minimum)
      • 遞迴(Recursion)
      • 計算字元數(Bean Counting)
    • 第4章:資料結構:物件與陣列
      • 範圍內的數字總和(The Sum of a Range)
      • 反轉陣列(Reversing an Array)
      • 資料結構—List(A List)
      • 深入比較(Deep Comparison)
    • 第5章:高階函式
      • 實作every 函式(Everything)
      • 主要書寫方向(Dominant Writing Direction)
    • 第6章:物件的秘密
      • Vector型態(A Vector Type)
      • 群組(Groups)
      • 迭代群組(Iterable Groups)
      • 借用其他物件的方法(Borrowing a Method)
    • 第7章:實作專案:宅配機器人
      • 衡量機器人的能力(Measuring a Robot)
      • 改善機器人效率(Robot Efficiency)
      • 持久化群組(Persistent Group)
    • 第8章:臭蟲與錯誤
      • 再接再厲(Retry)
      • 上鎖的箱子(The Locked Box)
    • 第9章:規則運算式
      • 更換引號風格(Quoting Style)
      • 比對數字(Numbers Again)
    • 第10章:模組
      • 模組化機器人(A Modular Robot)
      • 道路模組(Roads Module)
      • 循環相依性(Circular Dependencies)
    • 第11章:非同步程式設計
      • 手術刀追跡程式(Tracking the Scalpel)
      • 建立Promise.all 函式(Building Promise.all)
    • 第12章:實作專案:自創一個小型的程式語言
      • 陣列(Arrays)
      • 閉包(Closure)
      • 註解(Comments)
      • 修正作用範圍(Fixing Scope)
    • 第14章:文件物件模型
      • 建立表格(Build a Table)
      • 從標籤查詢名稱(Elements by Tag Name)
      • 貓與帽子(The Cat’s Hat)
    • 第15章:事件處理
      • 氣球(Balloon)
      • 滑鼠的拖曳軌跡(Mouse Trail)
      • 分頁式介面(Tabs)
    • 第16章:專案:2D平面遊戲
      • 暫停遊戲(Pausing the Game)
      • 怪物(A Monster)
    • 第17章:繪圖:Canvas元素
      • 形狀(Shapes)
      • 圓餅圖(The Pie Chart)
      • 彈跳球(A Bouncing Ball)
      • 預先計算鏡像圖(Precomputed Mirroring)
    • 第18章:HTTP與表單
      • 內容協商(Content Negotiation)
      • 編寫JavaScript程式的工作環境(A JavaScript Workbench)
      • 康威生命遊戲(Conway’s Game of Life)
    • 第19章:實作專案:小畫家線上版
      • 快捷鍵(Keyboard Bindings)
      • 繪圖效率(Efficient Drawing)
      • 繪製圓形(Circles)
      • 繪製直線(Proper Lines)
    • 第20章:伺服器端開發環境:NODE.JS入門
      • 搜尋工具(Search Tool)
      • 建立目錄(Directory Creation)
      • 在網站上提供公用空間(A Public Space on the Web)
    • 第21章:實作專案:技能交流網站
      • 在硬碟裡留存資料(Disk Persistence)
      • 重置評論欄位(Comment Field Resets)
    • 第22章:提升JavaScript效能的技巧
      • 路徑搜尋(Pathfinding)
      • 最佳化(Optimizing)
  • 出版地 臺灣
  • 語言 繁體中文

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading