深入探討 __proto__、prototype 與 [[prototype]]
Object 有 3 個非常像的 Property:__proto__、prototype 與 [[prototype]],徹底了解有助於我們看清 Prototype 本質。
Object 有 3 個非常像的 Property:__proto__、prototype 與 [[prototype]],徹底了解有助於我們看清 Prototype 本質。
Object.create() 從 ECMAScript 5.1 就開始提供,與 new 不同的是 Object.create() 讓我們可直接根據 Prototype 建立 Object,事實上我們也可土炮實作。
實務上我們常需判斷 Array 是否 任意 資料符合某條件,若存在則傳回 true,若不存在則傳回 false,ECMAScript 提供了 some() 可判斷。
實務上我們常需判斷 Array 是否 全部 符合某條件,若存在則傳回 true,若不存在則傳回 false,ECMAScript 提供了 every() 可判斷。
因為 ECMAScript 支援 First-class Function,因此可在 Function 內定義其他 Function,當 Function 內找不到 Variable 時,會先在 Function 內尋找,若找不到則往 Function 外層尋找,最後才會到 Global 尋找,此稱為 Scope Chain。
&& 與 || 為 ECMAScript 很具代表性的 Operator,事實上 , 與 && 與 || 非常類似,尤其在 Promise Chain 中非常實用。
ECMAScript 2020 支援了 ?. Optional Chaining Operator,至此 ECMAScript 終於有專屬的 Operator 用於 Nested Object,不必再借用 && 與 Falsy Value。
ECMAScript 2020 支援了 ?? Nullish Coalescing Operator,至此 ECMAScript 終於有專屬的 Operator 判斷 null 與 undefined,不必再借用 || 與 Falsy Value。
replace() 可取代 String,搭配 Regular Expression /g 可一次取代所有 String。
ECMAScript 雖然也有 Class、Object 與 Method 與 this 概念,但其 Method 本質仍是 Free Function,只是 this 指向 Object,也因為如此,所以能夠使用 Objet Destructure 從 Method 抽成 Free Function。