如何在 WebStorm 使用 ASI ?
ECMAScript 其實並不如 C、C# 與 Java 強制在每行結尾都要加上 ;,支援所謂 ASI (Automatic Semicolon Insertion) 會在每行結尾自動加上 ;;WebStorm 與 ESLint 只要稍加設定就可完美支援 ASI。
ECMAScript 其實並不如 C、C# 與 Java 強制在每行結尾都要加上 ;,支援所謂 ASI (Automatic Semicolon Insertion) 會在每行結尾自動加上 ;;WebStorm 與 ESLint 只要稍加設定就可完美支援 ASI。
FP 三部曲 (Declarative、Pure Function 與 Immutable) 中的第二部曲就是 Pure Function,但也由於 ECMAScript 對於 Argument 有 Pass by Value 與 Pass by Reference 兩種,且型別並沒有完整支援 Immutable,因此實現 Pure Function 時有些 Tricky。
ECMAScript 可動態建立 Property,而 Function 本身亦是 Object,若想在 Function 內存取自己的 Property,直覺會使用 this,但事實上並非如此。
ECMAScript 5 無論是 Function Declaration 或 Anonymous Function,都可以使用 this 搭配 call()、apply() 與 bind() 動態改變 this,ECMAScript 2015 支援了 Arrow Function 後,這對原本的 this 、call() 、apply() 與 bind() 有任何影響嗎 ?
實務上某些 Function 會傳入 Array.prototype.forEach(),但我們只想執行一次而已,如符合條件就只執行一次,其餘僅管符合條件,但都不執行,我們該怎麼做呢 ?
當 Callback 使用 for Loop 中 var 所設定的 Counter 時,一不小心就會出乎我們預期。
ECMAScript 提供眾多的 Higher Order Function,如 Array.prototype.forEach() ,當我們將 Callback 傳入後,且該 Callback 含有 this 想讀取 Object 的 Property 時,就會出現錯誤,該怎避免這個常見的問題呢 ?
Closure 是 ECMAScript 代表性功能,也是 Functional Programming 基礎,很多神妙的 FP 機制都是由 Closure 展開,善用 Closure 將使得程式碼更為精簡,可讀性更高,也更容易維護。
Closure 是 ECMAScript 的一大特色,但由於對其不了解,因此很多人不敢使用 Closure;或者雖然會使用 Closure,但仍然對其原理一知半解。本文以 Runtime 角度深入探討 Closure 底層機制,讓我們徹底了解 Closure 的黑魔法。
若從其他程式語言跳來學習 ECMAScript,最不習慣應該就是 ECMAScript 有大量 Asynchronous 概念,如在 For Loop 中使用 setTimeout() 算是 ECMAScript 前十大坑之一。