---
# System prepended metadata

title: JavaScript Ninja
tags: [Book, JavaScript]

---

# JavaScript Ninja
[Chapter1 無所不在的JS](/6nKW1vM4QNukH1ym02-4iA)
---
- [1-1 了解JS](/6nKW1vM4QNukH1ym02-4iA#1-1-了解JS)
- [1-2 了解Browser](/6nKW1vM4QNukH1ym02-4iA#1-2-了解Browser)
- [1-3 使用當前的最佳實踐](/6nKW1vM4QNukH1ym02-4iA#1-3-使用當前的最佳實踐)
- [1-4 提高技能轉移性](/6nKW1vM4QNukH1ym02-4iA#1-4-提高技能轉移性)
- [1-5 總結](/6nKW1vM4QNukH1ym02-4iA#1-5-總結)

[Chapter2 在執行時期產生網頁](/K7Q5jH-GQf2FYCeFIck0eA)
---
- [2-1 Browser生命週期](/K7Q5jH-GQf2FYCeFIck0eA#2-1-生命週期概述)
- [2-2 頁面建立階段](/K7Q5jH-GQf2FYCeFIck0eA#2-2-頁面建立階段)
- [2-3 事件處理](/K7Q5jH-GQf2FYCeFIck0eA#2-3-事件處理)
- [2-4 總結](/K7Q5jH-GQf2FYCeFIck0eA#2-4-總結)

[Chapter3 函式: 定義與引數](/Cf1KEpqISHqS1qrYo8FmMQ/)
---
- [3-1使用函式與否的差異?](/Cf1KEpqISHqS1qrYo8FmMQ#3-1使用函式與否的差異?)
- [3-2函式作為物件的有趣之處?](/Cf1KEpqISHqS1qrYo8FmMQ#3-2函式作為物件的有趣之處)
- [3-3定義函式](/Cf1KEpqISHqS1qrYo8FmMQ#3-3定義函式)
- [3-4引數(argument)與函式參數(parameter)](/Cf1KEpqISHqS1qrYo8FmMQ#3-4引數argument與函式參數parameter)
- [3-5總結](/Cf1KEpqISHqS1qrYo8FmMQ#3-5總結)

[Chapter 4 函式: 理解函式呼叫](/YTgi2th6TfS0G4HJk3NkVA/)
---
- [4-1使用函式隱含引數](/YTgi2th6TfS0G4HJk3NkVA#4-1-1-arguments-參數)
- [4-2呼叫函式](/YTgi2th6TfS0G4HJk3NkVA#4-2呼叫函式)
- [4-3修復函式背景空間的問題](/YTgi2th6TfS0G4HJk3NkVA#4-3修復函式背景空間的問題)
- [4-4總結](/YTgi2th6TfS0G4HJk3NkVA#4-4總結)

[Chapter 5 函式: 閉包與範圍](/arKVdkD9QVubixoVF3ejiA/)
---

- [5-1 了解閉包](/arKVdkD9QVubixoVF3ejiA#5-1-了解閉包)
- [5-2 開始使用閉包](/arKVdkD9QVubixoVF3ejiA#5-2-開始使用閉包)
- [5-3 使用執行背景空間(execution context)追蹤](/arKVdkD9QVubixoVF3ejiA#5-3-使用執行背景空間execution-context追蹤)
- [5-4 使用字彙環境(lexical environment)追蹤識別項(indentifier)](/arKVdkD9QVubixoVF3ejiA#5-4-使用字彙環境lexical-environment追蹤識別項indentifier)
- [5-5 瞭解JS的變數類型](/arKVdkD9QVubixoVF3ejiA#5-5-瞭解JS的變數類型)
- [5-6 探索閉包的運作方式](/arKVdkD9QVubixoVF3ejiA#5-6-探索閉包的運作方式)
- [5-7 總結](/arKVdkD9QVubixoVF3ejiA#5-7-總結)

[Chapter6 函式: 生成器(generator)與約定(promise)](/ZkOCQKqpQXCXOyvbjclrRA/)
---
- [6-1 使用生成器和約定讓我們的非同步變的更優雅](/ZkOCQKqpQXCXOyvbjclrRA#6-1-使用生成器和約定讓我們的非同步變的更優雅)
- [6-2 使用生成器函式](/ZkOCQKqpQXCXOyvbjclrRA#6-2-使用生成器函式)
- [6-3 使用約定](/ZkOCQKqpQXCXOyvbjclrRA#6-3-使用約定)
- [6-4 結合生成器和約定](/ZkOCQKqpQXCXOyvbjclrRA#6-4-結合生成器和約定)
- [6-5 總結](/ZkOCQKqpQXCXOyvbjclrRA#6-5-總結)

[Chapter7 物件: 以原型來實現物件導向](/njfLRF01QfehVQRbCLyewQ/)
---
- [7-1 瞭解原型](/njfLRF01QfehVQRbCLyewQ#7-1-瞭解原型)
- [7-2 物件建構與原型](/njfLRF01QfehVQRbCLyewQ#7-2-物件建構與原型)
- [7-3 實現物件繼承](/njfLRF01QfehVQRbCLyewQ#7-3-實現物件繼承)
- [7-4 在ES6裡使用JS的類別(class)](/njfLRF01QfehVQRbCLyewQ#7-4-在ES6裡使用JS的類別class)
- [7-5 總結](/njfLRF01QfehVQRbCLyewQ#7-5-總結)

[Chapter 8 物件: 控制物件存取](/Na897zKzRHOZnGwmGJNMug/)
---
- [8-1 用取值器和設值器來控制屬性存取](/Na897zKzRHOZnGwmGJNMug#8-1-用取值器和設值器來控制屬性存取)
- [8-2 使用代裡來控制對物件的存取](/Na897zKzRHOZnGwmGJNMug#8-2-使用代裡來控制對物件的存取)
- [8-3 總結](/Na897zKzRHOZnGwmGJNMug#8-3-總結)

[Chapter 9 處理資料集合](/Ghdu8lhSQl-w6Ny72u_4Fg/)
---
- [9-1 陣列](/Ghdu8lhSQl-w6Ny72u_4Fg#9-1-陣列)
- [9-2 對應表](/Ghdu8lhSQl-w6Ny72u_4Fg#9-2-對應表)
- [9-3 集合表](/Ghdu8lhSQl-w6Ny72u_4Fg#9-3-集合表)
- [9-4 總結](/Ghdu8lhSQl-w6Ny72u_4Fg#9-4-總結)

[Chapter 10 正規表達式](/Wa_HSt83TMWDOcpWBHElQg/)
---
- [10-1 為什麼正規表達式這麼重要](/Wa_HSt83TMWDOcpWBHElQg#10-1-為什麼正規表達式這麼重要)
- [10-2 複習正規表達式](/Wa_HSt83TMWDOcpWBHElQg#10-2-複習正規表達式)
- [10-3 編譯正規表達式](/Wa_HSt83TMWDOcpWBHElQg#10-3-編譯正規表達式)
- [10-4 捕捉符合的區段](/Wa_HSt83TMWDOcpWBHElQg#10-4-捕捉符合的區段-)
- [10-5 在replace方法裡使用函式](/Wa_HSt83TMWDOcpWBHElQg#10-5-在replace方法裡使用函式)
- [10-6 運用正規表達式來解決常見問題](/Wa_HSt83TMWDOcpWBHElQg#10-6-運用正規表達式來解決常見問題)
- [10-7 總結](/Wa_HSt83TMWDOcpWBHElQg#10-7-總結)


[Chapter11 程式模組化技術](/EWQdG_GjTu2CsSs1hnIzOA/)
---
- [11-1 在ES6之前JS的模組化](/EWQdG_GjTu2CsSs1hnIzOA#11-1-在ES6之前JS的模組化)
- [11-2 ES6裡的模組](/EWQdG_GjTu2CsSs1hnIzOA#11-1-2-使用AMD-與-CommonJS-對-JS進行模組化)
- [11-3 總結](/EWQdG_GjTu2CsSs1hnIzOA#11-3-總結)


[Chapter 12 文件物件模型(DOM)](/ONR0K5XTTkOli9d_21017Q/)
---
- [12-1 注入HTML代碼到DOM裡](/ONR0K5XTTkOli9d_21017Q#12-1-注入HTML代碼到DOM裡)
- [12-2 使用DOM屬性項(attribute)與屬性(property)](/ONR0K5XTTkOli9d_21017Q#12-2-使用DOM屬性項attribute與屬性property)
- [12-3 令人頭痛的樣式屬性項](/ONR0K5XTTkOli9d_21017Q#12-3-令人頭痛的樣式屬性項)
- [12-4 減少佈局震盪](/ONR0K5XTTkOli9d_21017Q#12-4-減少佈局震盪)
- [12-5 總結](/ONR0K5XTTkOli9d_21017Q#12-5-總結)

[Chapter 13 搞懂事件](/naXyXjziRt22eJ7GDan0GA/)
---
- [13-1 深入事件迴圈](/naXyXjziRt22eJ7GDan0GA#13-1-深入事件迴圈)
- [13-2 馴服計時器: 逾時和間隔](/naXyXjziRt22eJ7GDan0GA#13-2-馴服計時器-逾時和間隔)
- [13-3 處理事件](/naXyXjziRt22eJ7GDan0GA#13-3-處理事件)
- [13-4 總結](/naXyXjziRt22eJ7GDan0GA#13-4-總結)

Chapter 14
---


###### tags: `Book` `JavaScript`
