メインコンテンツまでスキップ

「ECMAScriptの理解」タグの記事が3件件あります

全てのタグを見る

ECMAScript仕様を理解する、パート2

· 約14分
[Marja Hölttä](https://twitter.com/marjakh)、推論的仕様観察者

仕様を読むスキルをさらに練習しましょう。まだ前回のエピソードを見ていない場合は、今がそれを確認する良いタイミングです!

すべてのエピソード

パート2の準備はいいですか?

仕様を知る楽しみな方法として、まずJavaScriptの機能を選び、それがどのように仕様化されているかを調べます。

警告!このエピソードには、2020年2月時点のECMAScript仕様からコピーされたアルゴリズムが含まれています。これらはいずれ古くなります。

プロパティがプロトタイプチェーンで検索されることは知っています: オブジェクトが読もうとしているプロパティを持っていない場合、プロトタイプチェーンを検索し続け、プロパティが見つかるか、それ以上プロトタイプを持たないオブジェクトに達するまで探索します。

例えば:

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

プロトタイプの検索はどこで定義されていますか?

この動作がどこで定義されているかを見つけてみましょう。始めるのに良い場所はオブジェクト内部メソッドのリストです。

[[GetOwnProperty]][[Get]]の両方がありますが、自身のプロパティに制限されないバージョンを探しているので、[[Get]]を選びます。

残念ながら、プロパティ記述子仕様型にも[[Get]]というフィールドがあります。そのため、仕様を[[Get]]のために閲覧する際には、この二つの独立した使用法を慎重に区別する必要があります。

ECMAScript仕様の理解、第1部

· 約12分
[Marja Hölttä](https://twitter.com/marjakh)、推測的仕様の観察者

全てのエピソードはこちら

この記事では、仕様内の簡単な関数を取り上げ、その記法を理解しようとします。さあ、始めましょう!

前書き

JavaScriptを知っていても、その言語仕様であるECMAScript Language specification、略してECMAScript仕様を読むのは非常に気が重い場合があります。少なくとも初めて読んだときはそう感じました。