Effective JavaScript 中文版  

作者:David
Herman

譯者:黃銘偉

出版社:碁峰

出版日期:2013年07月29日

語言:繁體中文 ISBN:9789862768921

書號:ACL039000

定價:450元     75折價:338元

有看部落格的才有此優惠喔

也可到露天購買http://goods.ruten.com.tw/item/show?21307305074024
內容簡介

駕馭 JavaScript 的 68 個具體作法

  為了真正精通 JavaScript,你必須知道如何有效運用這個語言富有彈性又具表達能力的特色,以及知道如何避免其中常見的陷阱。不管你已經撰寫了多久的
JavaScript 程式碼,Effective JavaScript 都能增進你對這個強大語言的理解,讓你能夠建置更容易預測、更可靠且更容易維護的程式。

  作者 David Herman 具有 Ecma 的 JavaScript
標準化委員會數年的工作經驗,他以前所未見的深度闡明這個語言的內部運作原理,幫助你完全掌握 JavaScript 強大的表達能力。立基於 JavaScript
最新的幾個版本,本書提供經過充分驗證的技巧以及最佳實務做法,協助你為未來的開發工作做好準備。

  Effective JavaScript 是由 68 個經過驗證、能夠幫助你寫出更好的 JavaScript
程式碼的具體作法所構成,並輔以實例來闡述說明。你會學到如何為每個專案挑選適當的程式寫作風格、管理無法預料的問題,並以更良好的方式來處理 JavaScript
程式設計的各個面向,諸如資料結構或共時性(concurrency)。關鍵的特色包括:

  ■ 以更好的方式來使用基於原型(prototype)的物件導向程式設計
  ■
使用陣列與字典(dictionary)物件時可能遭遇到的細微問題以及它們的解法
  ■ 對 JavaScript 函式與變數範疇(variable
scoping)語意的精確且務實的解說
  ■ 實用的 JavaScript 程式設計模式與慣用語法,例如選項物件(options
objects)及方法鏈串(method chaining)
  ■ 深入介紹 JavaScript
獨特的「run-to-completion」共時模型

作者簡介

David Herman

  Mozilla Research 的資深研究員。他是 Ecma TC39 的成員,這個委員會負責 JavaScript 的標準化工作。他擁有
Grinnell College 的電腦科學學士學位,以及 Northeastern University
的電腦科學碩士與博士學位。

章節目錄

chapter 01 讓你自己習慣 JavaScript
條款 01 知道你所用的是哪個 JavaScript


條款 02 了解 JavaScript 的浮點數字
條款 03 小心隱含的強制轉型(Implicit Coercions)
條款 04
優先選用基本型別而非物件包覆器
條款 05 避免把==用在混合的型別上
條款 06 了解分號插入的限制
條款 07 把字串想成是 16
位元編碼單位的序列

chapter 02 變數範疇
條款 08 盡量少用全域物件

條款 09 總是宣告區域變數
條款
10 避免使用 with
條款 11 善於使用 Closures
條款 12 了解變數的拉升(Variable Hoisting)
條款
13 使用即刻調用的函式運算式來建立區域範疇
條款 14 小心具名的函式運算式造成不可移植的範疇
條款 15 小心 Block-Local
函式宣告造成不可移植的範疇
條款 16 避免使用 eval 來建立區域變數
條款 17 優先選用間接的 eval 而非直接的 eval

chapter 03 函式的使用
條款 18 了解函式呼叫、方法呼叫以及建構式呼叫之間的差異

條款 19
熟悉高階函式的用法
條款 20 使用 call 以自訂的接收者來呼叫方法
條款 21 使用 apply 以不同數目的引數來呼叫函式
條款
22 使用 arguments 來建立可變參數的函式
條款 23 永不修改 arguments 物件
條款 24 使用一個變數來儲存對
arguments的參考(Reference)
條款 25 使用 bind 擷取出具有固定接收者的方法
條款 26 使用 bind 建立
Curry 函式
條款 27 封裝程式碼時優先選用 Closures 而非使用字串
條款 28 避免仰賴函式的 toString 方法

條款 29 避免非標準的堆疊查閱特性

chapter 04 物件和原型
條款 30 了解 prototype、getPrototypeOf 與

__proto__ 之間的差異
條款 31 優先選用 Object.getPrototypeOf 而非 __proto__
條款 32 永不修改
__proto__
條款 33 不要假設你的建構式會透過 new 來呼叫
條款 34 將方法儲存在原型上
條款 35 使用
Closures 來儲存私有資料
條款 36 只在實體物件上儲存實體狀態
條款 37 認出 this 的隱含繫結
條款 38
從子類別的建構式呼叫超類別的建構式
條款 39 永不重複使用超類別的特性名稱
條款 40 避免繼承標準類別
條款 41
把原型視為是實作細節
條款 42 避免輕率的 Monkey-Patching

chapter 05 陣列與字典
條款 43 從 Object 的直接實體建置出輕量化的字典

條款 44
使用 null 原型來防止原型汙染
條款 45 使用 hasOwnProperty 來防止原型汙染
條款 46
優先選用陣列來建立有序群集而非使用字典
條款 47 不要把可列舉的特性加到 Object.prototype 中
條款 48
避免在列舉時修改一個物件
條款 49 陣列迭代時優先選用 for 迴圈,而非 for...in 迴圈
條款 50 優先使用迭代方法而非迴圈

條款 51 在類陣列物件上重複使用一般化的 Array 方法
條款 52 優先使用陣列字面值而非 Array 建構式

chapter 06 程式庫與 API 設計
條款 53 維持前後一致的慣例

條款 54 把
undefined 視為「沒有值」
條款 55 為關鍵字引數接受選項物件
條款 56 避免非必要的狀態
條款 57
使用結構性定型來設計彈性的介面
條款 58 區別陣列及類陣列物件
條款 59 避免過度的強制轉型
條款 60 支援方法鏈串


chapter 07 共時性
條款 61 別阻斷 I/O 上的事件佇列

條款 62
使用巢狀或具名的回呼函式來進行非同步定序
條款 63 小心遺漏的錯誤
條款 64 使用遞迴來進行非同步迴圈
條款 65
別阻斷計算工作上的事件佇列
條款 66 使用一個計數器來進行共時作業
條款 67 永遠不要同步地呼叫非同步的回呼函式
條款 68 使用
Promises(承諾)來獲得較為乾淨的非同步邏輯

索引

 

arrow
arrow
    全站熱搜

    ETAITBOOK08 發表在 痞客邦 留言(0) 人氣()