跳至主要内容

3 篇文章 含有標籤「理解 ECMAScript」

檢視所有標籤

理解 ECMAScript 規範,第2部分

· 閱讀時間約 11 分鐘
[Marja Hölttä](https://twitter.com/marjakh),推測規範觀察員

讓我們來多練習一些我們驚人的規範閱讀技巧。如果你還沒看過上一集,現在是個好機會!

所有篇章

準備好進入第2部分了嗎?

了解規範的一個有趣的方法是從我們已知的 JavaScript 功能入手,找出它是如何被規範定義的。

警告!本集包含來自 ECMAScript 規範(截至 2020 年 2 月)的複製粘貼算法,最終它們可能會過時。

我們知道屬性會在原型鏈中查找:如果一個物件沒有我們試圖讀取的屬性,我們會沿著原型鏈往上找到它(或找到一個不再有原型的物件)。

例如:

const o1 = { foo: 99 };
const o2 = {};
Object.setPrototypeOf(o2, o1);
o2.foo;
// → 99

原型鏈的查找定義在哪裡?

讓我們嘗試找出這種行為的定義位置。一個不錯的起點是 物件內部方法清單

這裡既有 [[GetOwnProperty]] 也有 [[Get]] ——我們關心的是不限於 自有 屬性的版本,所以我們選擇 [[Get]]

不幸的是,屬性描述符的規範類型 也有一個名為 [[Get]] 的欄位,因此在瀏覽規範時,我們需要小心區分這兩種不同的用法。

理解 ECMAScript 規範,第一部分

· 閱讀時間約 9 分鐘
[Marja Hölttä](https://twitter.com/marjakh),推測性規範觀察者

全部集數

在本文中,我們採用規範中的一個簡單函數,並嘗試理解其標記法。讓我們開始吧!

前言

即使您了解 JavaScript,也可能會覺得閱讀其語言規範,ECMAScript 語言規範,或簡稱 ECMAScript 規範,相當令人生畏。至少這是我第一次閱讀時的感受。