Twitter hashtag: #esspec
便利ツール
自己紹介 (近況報告)
syumai syumai.icon
引っ越した
部屋が段ボールまみれ
京都に行ってきた
Kyoto.go楽しかったです
tars0x9752 (たーず / naoki aoyama) tars0x9752.icon
手首、少し良くなってきた
すごい久々
北海道旅行に行ってきました
yebis0942 (えびす) yebis0942.icon
Go, Reactを書いて暮らしています
近況としてはなぜか外部ディスプレイが認識されない
OpenAIのAPIのプロンプトのうまい工夫の仕方とか、タスクの分解テクニックとか
antisatori
フィヨルドブートキャンプで学習している無職です
フロントエンドが好きでReactをよく書いてます
yasumura / harupiyo
Google Chrome のバグ報告しました
前回のあらすじ
難しかったですね…
今回の範囲
9.10 Processing Model of WeakRef and FinalizationRegistry Targets の 9.10.3 Execution から
9.10.3 Execution
an ECMAScript implementation may perform...
"may"が出てくるのは珍しい感
9.10以降はスッと飛ばす
ここから何を読む?
TIPS
ECMA Internationalはスイスにある
13.2.4 Array Initializer
code:js
Array elements may be elided at the beginning, middle or end of the element list.
(英語) elide: 省略
[,,,]という感じで要素を省略してもOKという話
Elided array elements are not defined.
undefinedではないらしい
not definedな要素は列挙されるのか?→列挙の方法による
code:js
ary.forEach(v => console.log(v)) // 0, 1, 3
for (const v in ary) console.log(v) // 0, 1, 3
for (const v of ary) console.log(v) // 0, 1, undefined, 3
If an element is elided at the end of an array, that element does not contribute to the length of the Array.
末尾の省略された要素はArrayの長さにカウントされない
trailing commaのための仕様っぽい
code:js
Arrayの要素として AssignmentExpressionが使える
code:js
a = 1; console.log(a) // => 1 13.2.4.1 Runtime Semantics: ArrayAccumulation
Arrayのlengthに値をセットする処理
$ 2^{32} - 1とは?
配列が保持できる値の最大数っぽい
以下に言及ありyebis0942.icon
13.2.4.2 Runtime Semantics: Evaluation
Arrayを初期化する処理
13.2.5 Object Initializer
An object initializer is an expression describing the initialization of an Object, written in a form resembling a literal.
object initializerはliteralではない説
NullLiteral, BooleanLiteral, NumericLiteral, StringLiteral
Regular Expression Literalはliteralではないのか…?
というか文法定義ではObjectLiteralという名前が付いているが…?
ここで我々は考えるのをやめた
CoverInitializedNameが使われているObject Initializerとはどんなもの?
以下のような文法が合法になりそうだが、実際は文法エラーになる
code:js
({ a = 1 }) // Syntax Error
→NOTE 3に補足があった。カバー文法のためにここではゆるい文法規則として定義されていて、Static Semantics: Early Errorsのなかで追加的な文法チェックが行われる。(これによってconst { a = 1 } = objectのような分割代入記法が定義できるようになっている) 次回
引き続き見ていくかも
11からで!