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
ECMAScript
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuta Hiroto
November 21, 2016
Programming
700
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
190
my tools
abouthiroppy
0
160
OSSを楽しむ話
abouthiroppy
0
180
React Nativeを触ってみた話
abouthiroppy
0
170
Other Decks in Programming
See All in Programming
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
210
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.8k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
Oxcを導入して開発体験が向上した話
yug1224
4
340
AIで効率化できた業務・日常
ochtum
0
150
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.4k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
230
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
640
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
130
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
610
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Technical Leadership for Architectural Decision Making
baasie
3
420
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
First, design no harm
axbom
PRO
2
1.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
A Tale of Four Properties
chriscoyier
163
24k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Accessibility Awareness
sabderemane
1
140
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
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/