Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ECMAScript
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuta Hiroto
November 21, 2016
Programming
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ECMAScript
https://atnd.org/events/82619
の発表資料
Yuta Hiroto
November 21, 2016
More Decks by Yuta Hiroto
See All by Yuta Hiroto
Node8.3.0について
abouthiroppy
1
3.2k
reflow/repaint
abouthiroppy
0
210
my tools
abouthiroppy
0
180
OSSを楽しむ話
abouthiroppy
0
200
React Nativeを触ってみた話
abouthiroppy
0
190
Other Decks in Programming
See All in Programming
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
570
iOSDC2026登壇資料.pdf
riofujimon
0
200
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
450
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
280
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
730
JRuby: Past, Present, and Future
headius
0
210
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
510
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
410
速習iPhone Duo対応
yuukiw00w
2
910
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Being A Developer After 40
akosma
91
590k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Technical Leadership for Architectural Decision Making
baasie
3
580
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Product Roadmaps are Hard
iamctodd
55
13k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Transcript
ECMAScript 2016/11/20 ALT
ࣗݾհ about_hiroppy abouthiroppy TEAMS
JavaScriptͷඪ४ ECMAScript Ecma International - ECMA-262 - ECMA-402 specifications
ecma-international.org /publications/standards/Standard
Editions(only ECMA-262) • 1996/06 - ECMA-262 (ES 1) •
1998/08 - ECMA-262 (ES 2) • 1999/12 - ECMA-262 (ES 3) • 2009/12 - ECMA-262 (ES 5) • 2011/06 - ECMA-262 (ES 5.1) • 2015/06 - ECMA-262 2015 (ES 6) • 2016/06 - ECMA-262 2016 (ES 7) • 2017/?? - ECMAScript 2017 (8th Edition) developer.mozilla.org/ja/docs/Web/JavaScript/Language_Resources
Editions(only ECMA-262) • 1996/06 - ECMA-262 (ES 1) •
1998/08 - ECMA-262 (ES 2) • 1999/12 - ECMA-262 (ES 3) • 2009/12 - ECMA-262 (ES 5) • 2011/06 - ECMA-262 (ES 5.1) • 2015/06 - ECMA-262 2015 (ES 6) • 2016/06 - ECMA-262 2016 (ES 7) • 2017/?? - ECMAScript 2017 (8th Edition) ࠓίί ES2015͔ΒຖϦϦʔε ͞ΕΔΑ͏ʹܾఆ͞Εͨ ࡦఆத
ECMA TC39 ECMAScriptͷඪ४ԽΛ ߦ͏ҕһձ ओཁͳϒϥβϕϯμʔ ͷදͳͲ͕ࢀՃ͠ ͍ٞͯ͠Δ
TC39 Process stage-0 stage-1 stage-2 stage-3 stage-4 Strawman Proposal
Draft Candidate Finished tc39.github.io/process-document
TC39 Process stage-1 stage-2 stage-3 stage-4 tc39.github.io/process-document stage-0 Strawman
ΞΠσΞ tc39/proposalsͷstage-0 PRΛग़͢ɻ TC39 championΛऔಘ͠ tc39/proposals/blob/master/CONTRIBUTING.md#proposals
TC39 Process stage-0 stage-2 stage-3 stage-4 tc39.github.io/process-document Proposal stage-1
Ճ͢ΔͨΊͷέʔε࡞ (polyfills / demos) જࡏత՝ͷಛఆ
TC39 Process stage-0 stage-1 stage-3 stage-4 tc39.github.io/process-document Draft stage-2
ECMAScriptඪ४Λ༻͠ ߏจͱηϚϯςΟοΫͷ ਖ਼֬ͳઆ໌Λ͢Δɻ
TC39 Process stage-0 stage-1 stage-2 stage-4 tc39.github.io/process-document stage-3 Candidate
࣮Ϣʔβ͔Βͷ ϑΟʔυόοΫΛٻΊΔɻ ͯ͢ͷηϚϯςΟοΫɺ ߏจɺٴͼAPI͕ܾఆ͞ΕΔɻ
TC39 Process stage-0 stage-1 stage-2 stage-3 tc39.github.io/process-document stage-4 Finished
ਖ਼ࣜͳECMAScriptඪ४ʹ ؚΊΔ४උ͕Ͱ͖͍ͯΔ͜ͱ Λࣔ͢ɻ test262Ͱ༻γφϦΦςετ͕ डɺϚʔδ͞ΕΔඞཁ͕͋Δɻ 2ͭҎ্ͷޓ࣮͕ඞཁɻ
stage-4ͷProposalਖ਼ࣜʹ ࣍ظECMAScriptͷ༷ͱͳΔ
Editions(only ECMA-262) • 1996/06 - ECMA-262 (ES 1) •
1998/08 - ECMA-262 (ES 2) • 1999/12 - ECMA-262 (ES 3) • 2009/12 - ECMA-262 (ES 5) • 2011/06 - ECMA-262 (ES 5.1) • 2015/06 - ECMA-262 2015 (ES 6) • 2016/06 - ECMA-262 2016 (ES 7) • 2017/?? - ECMAScript 2017 (8th Edition)
ES2016 • Array.prototype.includes • Exponentiation Operator const arr =
[1, 2, 3]; if (arr.includes(2)) { console.log('aru!'); } if (2**3 === 8) { console.log('**'); }
ES2017 • String.prototype.padStart String.prototype.padEnd • Object.values Object.entries • Object.getOwnPropertyDescriptors •
Trailing Commas in Function Param Lists • Async Functions
string padding 'a'.padStart(5); // " a" 'a'.padEnd(5); // "a
" 'a'.padStart(3, 'b'); // "bba" 'a'.padEnd(3, 'b'); // "abb" จࣈຒΊΛߦ͏ let num = 1; // `0${num}`.slice(-2); // 01 // ☺ num.toString().padStart(2, 0); // 01 tc39/proposal-string-pad-start-end
Object.values/Object.entries const obj = { name: 'hello', age: 24
}; Object.values(obj); // Array [ "hello", 24 ] Object.entries(ob); // Array [ [ "name", "hello" ], [ "age", 24 ] ] tc39/proposal-object-values-entries
Object. getOwnPropertyDescriptors ࢦఆͨ͠ΦϒδΣΫτͷ ͯ͢ͷPropertyDescriptors Λऔಘ͢Δ attributes - value -
writable - get - set - configurable - enumerable const obj = { name: 'hello', age: 24 }; Object.getOwnPropertyDescriptors(obj); // Object { name: Object, age: Object } /* Object { name: { configurable: true, enumerable: true, value: "hello", writable: true }, age: ... } */ tc39/proposal-object-getownpropertydescriptors
Trailing Commas in Function Param Lists ΧϯϚΛڐ༰͢Δ͜ͱʹΑΓ มߋ࣌ʹ࠷ޙඌͷϓϩύςΟ
ͷΞοϓσʔτ (ΧϯϚΛ͚Ճ͑Δ)Λ͙ function post( p1, p2, ) {} post( 'hoge', 'fuga', ); tc39/proposal-trailing-function-commas
Async Functions tc39/proposal-async-iteration import 'babel-polyfill'; (async () => {
const str = await update(); console.info(str); })().catch((err) => console.error(err)); function update() { return new Promise((resolve, reject) => { setTimeout(() => resolve('finished!!'), 100); }); } ඇಉظͳॲཧΛಉظత ʹهड़͢Δ͜ͱ͕Մೳ
JavaScript͜Ε͔Β ͲΜͲΜਐԽ͍͖ͯ͠·͢ʂ
Links • tc39/ecma262 • tc39/proposals • tc39/agendas • tc39/tc39-notes •
kangax.github.io/compat-table/es6/