Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
about ES and TC39
Search
surumebeer
May 08, 2019
Technology
0
250
about ES and TC39
について調べました。
surumebeer
May 08, 2019
Tweet
Share
More Decks by surumebeer
See All by surumebeer
作ろう、Custom Hooks
surumebeer
1
310
Other Decks in Technology
See All in Technology
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
230
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
4
2.1k
4年で17倍に成長したエンジニア組織を支えるアーキテクチャの過去と未来
sansantech
PRO
1
870
共創するアーキテクチャ ~チーム全体で築く持続可能な開発エコシステム~ / Co-Creating Architecture - A Sustainable Development Ecosystem Built by the Entire Team
bitkey
PRO
0
170
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
380
Is Go A Good Language to Build Compilers?
kennethanceyer
0
100
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
500
TypeScript、上達の瞬間
sadnessojisan
49
14k
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
350
Engineer Career Talk
lycorp_recruit_jp
0
200
組織成長を加速させるオンボーディングの取り組み
sudoakiy
3
340
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
130
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
How to Ace a Technical Interview
jacobian
276
23k
Happy Clients
brianwarren
98
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A better future with KSS
kneath
238
17k
Gamification - CAS2011
davidbonilla
80
5k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Building Your Own Lightsaber
phodgson
103
6.1k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Unsuck your backbone
ammeep
668
57k
Become a Pro
speakerdeck
PRO
25
5k
Transcript
ECMAScriptとTC39について Shuji Nishino @surumebeer 『Vue.js/PWA/JavaScript…新&定番なんでもあり』 表参道Web勉強会 3 2019/4/8
自己紹介 Shuji Nishino @surumebeer 株式会社PR TIMES フロントエンドエンジニア ・するめ ・ビール ・鯱がマスコットのサッカークラブ
が好きです。 よろしくおねがいします。
ささやかな疑問
ES2015だのES7だの ナンバリングがあれこれあるけど そもそもこれはどういうことなんだろ
あれこれを調べてみた
そもそもES(ECMAScript)とは?
ECMAScript(Ecma-262) • Ecma Internationalが策定しているJavaScriptの仕様 • 紆余曲折あってブラウザ(クライアントサイド)で使える JavaScriptの仕様を標準化する必要性が高まり、Ecma Internationalが策定&標準化している (詳しくはWebで)
ECMAScript(Ecma-262) • ES2015(ES6)から毎年策定する予定のため、策定時の バージョニングから西暦でナンバリングしようとなっているみ たいです。 Ecma Internationalの中にTC39という集まりがあるらしい • どうやって標準化してるの? •
ES2015には大きな標準化がありましたね
TC39…
TC39とは • ECMAScriptの仕様について議論する委員会(github) • github/TC39のPeople 各ブラウザ、W3C、WHATWG、Node.jsのDevelopper等 • 段階的なプロセスを経て機能の標準化をしている • ブラウザに導入して実際にテストしていたりする。
→ 例:Chrome 67にPromise.allSetteledが導入される
仕様策定のプロセス • Stage0 - Strawperson • Stage1 - Proposal •
Stage2 - Draft • Stage3 - Candidate • Stage4 - Finished • (Inactive) https://tc39.github.io/process-document/
MTGの内容 アジェンダだったり議事録だったりがGitHubに置いてある 主に… • ProposalのStage、issues、PRについての議論 • Proposalにある機能の仕様の確認 等 毎年5-6月にStage4の機能の標準化を発表している
ちなみに… 今年発表されるであろうECMAScript2019のバージョンは10ら しいです。
実際にStage4にある機能を見てみる Finished Proposals
ES2019で追加される予定のもの ES2016 - 2 Proposals ES2017 - 6 Proposals ES2018
- 8 Proposals ES2019 - 8 Proposals とES2016以降で毎年追加予定の 機能は増加傾向にある。
Array.prototype.{flat,flatMap}を見てみる Array.prototype.flat 配列を連結して特定の深さの新しい配列を作成する Array.prototype.flatMap 配列の各要素をマッピングする関数を使用してマッピングし、flat化した結果を新しい配 列にする。 Array.prototype.flatMap & Array.prototype.flat(Stage 3
Draft / January 4, 2019)
Array.prototype.{flat,flatMap}を見てみる flat flatMap
Proposalの動き GitHub/TC39にレポジトリが立っているので、commitのhistory見てみる
Proposalの動き Stage 0 には2017年6月に上がっている。
議事録見てみる 2017-07-27 Meeting Notes Proposalのためのslideとかもある みたいな仕様についての議論がされている
そしてStage4(Finished)に
で、どこで使えるの or どこで使えないの? ECMAScript 5/6/7 compatibility tables 見るとすごいわかりやすくていいです
参考 ・GitHub/TC39 ・ECMAScript Discussion Archives ・ECMAScript® 2020 Language Specification ・ECMAScript
2019の議事録を全部読む #TC39MTG 読書会をしました ・ECMAScriptの仕様策定に関するカンニングペーパー (Web Scratch) ・ECMAScript 5/6/7 compatibility tables
おしまい
ご清聴ありがとうございました
乾杯