ECMAScript仕様輪読会 #84
前回: ECMAScript仕様輪読会 #83
Cosenseの招待リンク: https://scrapbox.io/projects/esspec/invitations/85b96c9fa718ce5185e307196ed8fb53
connpass: https://esspec.connpass.com/
Discord: https://discord.gg/59S3y6weQj
ES Spec Draft: https://tc39.es/ecma262/
multipage: https://tc39.es/ecma262/multipage/
資料: https://speakerdeck.com/syumai/ecmascriptshi-yang-wodu-munonibi-yao-nazhi-shi-daiziesutoban
読み物リスト
Twitter hashtag: #esspec
便利ツール
esspec-memo: https://tars0x9752.github.io/esspec-memo/esspec.html
Scrapbox Codeblock Generator: https://vzvu3k6k.github.io/scrapbox-codeblock/
TC39 Terminology: https://github.com/tc39/how-we-work/blob/main/terminology.md
esmeta playground: https://es-meta.github.io/playground/
時事ネタ
JSConf
8/31まで
https://docs.google.com/forms/d/e/1FAIpQLSf0QHajs3kQyax0zDX3W6KTFom7LqSqrIEmCp91tV_ccA9QWA/viewform
TSKaigi Hokuriku
9/15まで
https://tskaigi.hatenablog.com/entry/2025/08/05/112439
自己紹介 (近況報告)
syumai syumai.icon
Twitter: https://twitter.com/__syumai GitHub: https://github.com/syumai
Go / TSを書いて暮らしてます
フロントエンドカンファレンス北海道 / 東京で話します
iwatsurut
とくに、イベントもなく過ごしています。
仕事で、Go で Web システムを作ることになった。とりあえず、オープンになった。
igrep(山本悠滋)
https://github.com/igrep/
前回のあらすじ
https://claude.ai/share/fedfaf52-0393-49d4-83e3-15fdb6a0cef8
今回のメモ
code:js
class B extends Symbol {
// constructorがなければOK!... ではない
}
new B(); // TypeError: Symbol is not a constructor
code:js
const a = 1, 2, 3;
const b = 4, 5, 6;
const c = 7, 8, 9;
cSymbol.isConcatSpreadable = false;
console.log(a.concat(b, c));
/*
[
1,
2,
3,
4,
5,
6,
[ 7, 8, 9, Symbol(Symbol.isConcatSpreadable): false ]
]
*/
// Chrome 48 からで意外と新しい (ES2017あたり?)
Symbol.species: https://zenn.dev/pixiv/articles/d413ce090e40bb
code:js
const obj = {
a: 1,
b: 2,
c: 3,
Symbol.unscopables: {
a: false,
b: false,
c: true,
},
};
with (obj) {
console.log(a, b, c); // c is not defined
}
code:js
globalThis.a = 1;
globalThis.b = 2;
globalThis.c = 3;
globalThisSymbol.unscopables = {
a: true,
b: false,
c: true,
}
console.log(a, b, c); // 1 2 3 -> 特に隠れない