最近終於有時間可以好好把這本書讀一讀,書中部分內容透過經驗的累積或許已經知道了,但再次根據系統性的整理與複習對觀念的鞏固仍然是相當有幫助的,讀完後可說是獲益良多。

Pattern 優點

  • 使用前人驗證過的優良實作方式
  • 將某些技巧或實作方式命名,增進 developer 間溝通效率

Object 觀念

  • number, string, boolean, null, undefined 非 object,屬原始型別(primitive type)
  • function 可擁有 property 與 method,亦屬於 object
  • object 只是 properties 的集合(當 property 是 function 時稱作 method),或 key-value pairs 的清單(如其他語言中的 associative array)
  • 兩種主要 object:
    1. Native Object:ECMAScript 標準中所描述,如內建 object(Array, Date, etc.)或使用者定義的 object(var obj = {};
      1. Host Object:定義在 host 環境中,如 browser 的 window object 及 DOM object

Prototype 觀念

  • 常用 prototype 實作繼承(inheritance)
  • prototype 是一個 object,且每個 function 都有 prototype 這個 property

其他

  • script 語言通常需要一個執行環境作為 host,如 Ruby 的 host 是 Java,Python 的 host 是 C/C++
  • JavaScript 的核心是基於 ECMAScript 標準,ECMAScript 5 於 2009 年 12 月發佈,新增了 strict mode
Strict Mode 使用範例
1
2
3
4
function foo() {
"use strict";
// ...
}
  • 使用 JSLint 檢測 code,養成正確開發習慣
  • 現今大多數 browser 皆支援 console object,是非常用於學習的工具(常用 methods:log(), dir()