點燈坊

學而時習之,不亦悅乎

Tag : ECMAScript

Promise 之 finally() 與 Try Catch Finally

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

Promise 之 catch() 與 Try 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 資料。

Property Accessor 與 Computed Property Name

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。

深入探討 Array.apply()

Array.prototype 並沒有 apply(),所以 Array.apply() 是來自於 Function.prototype.apply(),且 Array.apply() 有一些特殊性質。

深入探討 var

var 從 ECMAScript 一開始就存在,也是代表 Keyword,看到 var 就可以判斷是 ECMAScript 了。但 var 在 ECMAScript 2015 之後有了一些改變,重要性也不若以往,TC39 甚至建議完全不要使用 var,改用 letconst

使用 Rest Parameter 實現無限 Argument

對 Function 能否傳遞 無限 Argument,一直是檢驗一個語言的指標。在 ECMAScrip 5 提供了 arguments Array-like Object 存取 無限 Argument;ECMAScript 2015 則提供了更好的 Rest Parameter 取代 arguments

如何 Clone Object ?

= 只能 Copy Object 的 Reference,而非真正 Clone Object,本文整理出 4 種方式,並詳細分析其特色。