使用 IIFE 建立 Local Variable
為了讓 Function 的可讀性更佳,我們會在 Function 內建立 Local Variable,亦可使用 IIFE 與 Arrow Function 的 Parameter 取代。
為了讓 Function 的可讀性更佳,我們會在 Function 內建立 Local Variable,亦可使用 IIFE 與 Arrow Function 的 Parameter 取代。
IIFE 為 FP 的招牌菜,由於其獨特的 Lexical Scope,使其在 ECMAScript 有不少獨特應用。
ECMAScript 無論使用 Object Literal 或者 new 建立 Object,所有的 Property 都是 Public,也就是 ECMAScript 沒有 Field 概念,而 Encapsulation 算是 OOP 最基本原則之一,這也使得使用 ECMAScript 實踐 OOP 時有些許缺憾,本文使用 Closure 實踐 Encapsulation,並探討 Stage 3 的 Private Class Field 語法。
ECMAScript 2015 雖然支援了 Class,但沒支援 Private Field 始終是一大缺憾,目前 Private Field 已經在 Stage 3,在 Node 12+ 與 Vue 皆可使用。
若我們想找出 Array 中所有 Combination,可使用 flatMap() 與 slice() 實現。
splice() 是功能很強的 Method,可處理 Insert、Update 與 Remove,唯它是少數幾個會修改原本 Array 的 Method,須小心使用。
實務上有時會想將 整數 的最後幾位去除,是否有更簡潔的作法呢 ?
計算 N 次方,直覺都會想到使用 Math.pow(),事實上還有其他 2 種方式。
雖然 ECMAScript 對於數字只有 Number,且本質是 Float,但人類的數字系統還是有 Integer 與 Float 之分,且 Float 轉 Integer 亦是實務上常見的需求。
Math.floor() 用來對 Float 無條件捨去成整數,若是正數可用 ~~ 取代。