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
ES.next — 20年目のECMAScriptに向けて
Search
nishaya
September 29, 2016
Programming
0
1.3k
ES.next — 20年目のECMAScriptに向けて
社内勉強会で話した、ES.nextに関する話です
nishaya
September 29, 2016
Tweet
Share
More Decks by nishaya
See All by nishaya
ブラウザで一緒に音楽をつくる
nishaya
0
2.1k
Webで音楽を奏でる
nishaya
0
6.1k
そのSPA、本当に必要ですか?
nishaya
0
3.4k
Other Decks in Programming
See All in Programming
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
380
クラシルを支える技術と組織
rakutek
0
200
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
940
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
130
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
960
Model Pollution
hschwentner
1
190
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
160
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
500
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
950
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
130
Flutterで分数(Fraction)を表示する方法
koukimiura
0
110
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
790
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Docker and Python
trallard
46
3.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Fireside Chat
paigeccino
40
3.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Transcript
ES.next 20ͷECMAScriptʹ͚ͯ גࣜձࣾSpeee ։ൃ෦ ೋࣾ୩ ߉༎ 1
ES = ECMAScriptͱ • ECMA-262ͰఆΊΒΕͨεΫϦϓτݴޠͷ༷ • JavaScriptECMAScriptͷ࣮ͳͷͰɺݫີʹΠίʔϧͰ ͳ͍ • ECMAͷTC39ʹΑͬͯࡦఆ͞Ε͖ͯͨ
• ES1͕1997ʹࡦఆ͞ΕͨͷͰɺདྷͰ20Λܴ͑Δ 2
Contents • What's new in ES2015(ES6) • What's new in
ES2016(ES7) • ECMAScriptͷࡦఆϓϩηε 3
What's new in ES2015(ES6) 4
ES2015ͰՃ͞Εͨͷ • classߏจ • Ξϩʔؔ • ObjectϦςϥϧͷ֦ு • ςϯϓϨʔτจ •
ׂೖ 5
ES2015ͰՃ͞Εͨͷ • DefaultɺRest(༨Ҿ)ɺSpread • let ͱ const • for ..
of จ • δΣωϨʔλ yield, yield* • Unicodeαϙʔτͷ֦ு 6
ES2015ͰՃ͞Εͨͷ • Ϟδϡʔϧ(import/export) • Map, Set, WeakMap, WeakSet • Proxy/Reflect
• Symbol • ϏϧτΠϯΦϒδΣΫτͷαϒΫϥε 7
ES2015ͰՃ͞Εͨͷ • Promise • Array, Math, Number, Object, Date, RegExpͷػೳՃ
• ܕ͖ྻ(Typed Arrays) • 2ਐ͓Αͼ8ਐͷϦςϥϧ • ඌݺग़͠࠷దԽ(tail call optimization) 8
What's new in ES2016(ES7) 9
ES2016ͰՃ͞Εͨͷ(1) • Array.prototype.includes() [1, 2, 3].includes(2); // true [1, 2,
3].includes(4); // false [1, 2, 3].includes(1, 0); // true [1, 2, 3].includes(3, 3); // false 10
ES2016ͰՃ͞Εͨͷ(2) • ͖ԋࢉࢠ 2 ** 2 // 4 2 **
-2 // 0.25 - 2 ** 2 // SyntaxError: Unexpected token ** -(2 ** 2) // -4 (-2) ** 2 // 4 11
Ҏ্ গͳ͍ͱࢥ͍·ͤΜ͔ʁ 12
ECMAScriptͷ༷ࡦఆϓϩηε 13
͍··ͰͷECMAScript • ES4ҙݟׂ͕Εͨʹഁغ͞Εͨ • ES2015ͷࡦఆʹ͕͔͔࣌ؒΓ͗ͨ͢ 14
࣍ظECMAScriptͷ༷ࡦఆϓϩηε • ϦϦʔε͕1ຖʹͳΔɻ໊લ߸ʹ(ES6 -> ES2015) • Ճ༷ਵ࣌ఏҊ͞ΕΔɻఏҊStage0(͖ͨͨ)ʙ Stage4(ࡦఆྃ)·Ͱͷ4ஈ֊ • 1ճͷTC39૯ձͷࡍʹStage4ʹͳ͍ͬͯΔͷ͕༷ʹऔ
Γࠐ·ΕΔ • ͦΕΒͷఏҊ·ͱΊͯES.nextͱݺͿ 15
֤εςʔδ • Stage0 Strawman • Stage1 Proposal • Stage2 Draft
• Stage3 Candidate • Stage4 Finished https://tc39.github.io/process-document/ 16
ͦͷ݁Ռ https://github.com/tc39/proposals/ 17
͜Ε͔Β࠾༻͞Εͦ͏ͳͷ 18
͍͔͚Δʹʁ ຖग़Δͱͨ͠ΒɺະରԠϒϥβͷࠩҟຒΊΔͷେมͰ …ʁ • BabelΛ͏ • Polyfill͏ 19
ES.nextͷContributeΛ͢Δʹʁ • όάใࠂ&मਖ਼ • ػೳͷϦΫΤετ • Proposal(ఏҊ)Λ্͛Δ https://github.com/tc39/proposals/blob/master/ CONTRIBUTING.md 20
·ͱΊ • ES2015 ʹΑͬͯύϫϑϧʹͳͬͨECMAScript • ES2016 ͔Βࡦఆϓϩηε͕มߋ͞Εͨ • ES.next ΛܾΊΔͷ͋ͳͨ(͔͠Εͳ͍)
21