點燈坊

失くすものさえない今が強くなるチャンスよ

タグ : ECMAScript

深入探討 Arrow Function 與 this

ECMAScript 5 無論是 Function Declaration 或 Anonymous Function,都可以使用 this 搭配 call()apply()bind() 動態改變 this,ECMAScript 2015 支援了 Arrow Function 後,這對原本的 thiscall()apply()bind() 有任何影響嗎 ?

如何在 Callback 中使用 this ?

ECMAScript 提供眾多的 Higher Order Function,如 Array.prototype.forEach() ,當我們將 Callback 傳入後,且該 Callback 含有 this 想讀取 Object 的 Property 時,就會出現錯誤,該怎避免這個常見的問題呢 ?

實務上如何使用 Closure ?

Closure 是 ECMAScript 代表性功能,也是 Functional Programming 基礎,很多神妙的 FP 機制都是由 Closure 展開,善用 Closure 將使得程式碼更為精簡,可讀性更高,也更容易維護。

深入探討 Closure 黑魔法

Closure 是 ECMAScript 的一大特色,但由於對其不了解,因此很多人不敢使用 Closure;或者雖然會使用 Closure,但仍然對其原理一知半解。本文以 Runtime 角度深入探討 Closure 底層機制,讓我們徹底了解 Closure 的黑魔法。

Promise 之 finally() 與 Finally

實務上有些邏輯在 Fulfilled Promise 與 Rejected Promise 都需被執行,導致 Fulfilled Handler 與 Rejected Handler 都寫了一份,此時可使用 ECMAScript 2018 的 finally()try catch finally,只需寫一份邏輯即可。

Promise 之 catch() 與 Catch

若為 Fulfilled Promise,我們可用 then()await 去獲得 Synchronous 資料;但若為 Rejected Promise,則有 then()catch()try catch 三種處理方式。

Promise 之 then() 與 Await

ECMAScript 2015 的最大亮點之一就是提出 Promise 這種 未來值 概念避免 Callback Hell,先有 2015 的 then(),後有 2017 的 await,都可用來取得 Promise 內的 Synchronous 資料。

ECMAScript 之 Property Accessor

ECMAScript 5 的 Property Accessor 提供了 Bracket Notation 可使用 [] 存取 Property,這使得 Property 可以使用 Variable;而 ECMAScript 2015 更加碼提供 Computed Property Name,讓我們在建立 Object 時就能使用 []

使用 Event Loop Model 執行 Asynchronous Function

由於 ECMAScript 是 Single Thread 語言,對於繁重的運算動作,就無法使用 Multi Thread 解決,因此 Asynchronous 在 ECMAScript 格外重要。Browser 使用獨特的 Event Loop Model 實現 Asynchronous,要能徹底了解其背後運作原理,才能掌握 ECMAScript 的 Asynchronous Function。

ECMAScript 之 Generic Method

ECMAScript 有個很有趣特性:Generic Method 可被其他型別透過 call() 使用,宛如自己的 Method 一般,這種 借用 Method 特性,使得該型別也擁有其他型別能力。

如何判斷變數型別 ?

ECMAScript 雖然是 Dynamic Type Language,但並不代表 Variable 沒有 Type,只是其內建獲得 Type 方法包含太多 驚喜,成為備受爭議部分。本文整理出 4 種獲得 Type 方式,各有其優缺點,最後自訂 typeof_(),可判斷各種 Type。

發現 ECMAScript 本質

大家在學習 ECMAScript 時,是否覺得跟主流 OOP 程式語言不太一樣?為什麼沒有 Interface?為什麼很難使用 OOP Design Pattern ?為什麼我會從很討厭 ECMAScript 到很喜歡 ECMAScript?這要從其本質談起,因為我發現了其可愛一面。