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 2015
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Benjamin
July 03, 2015
Programming
59
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ecmascript 2015
Benjamin
July 03, 2015
More Decks by Benjamin
See All by Benjamin
Intégrer Cordova dans une appli native
benjmichel
0
91
Other Decks in Programming
See All in Programming
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
510
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
240
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
760
OSもどきOS
arkw
0
560
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
110
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
170
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
130
さぁV100、メモリをお食べ・・・
nilpe
0
140
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
680
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
340
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
240
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
The SEO identity crisis: Don't let AI make you average
varn
0
490
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Accessibility Awareness
sabderemane
1
140
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
From π to Pie charts
rasagy
0
210
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
Unsuck your backbone
ammeep
672
58k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
New Earth Scene 8
popppiees
3
2.3k
Transcript
ECMAScript 2015 Benjamin MICHEL 03/07/2015
What is ECMASript ? • a scripting language • standardized
by Ecma International • several well-known implementations: ◦ JavaScript ◦ JScript ◦ ActionScript
History of ES • First edition 1997 • ES 3
in 1999 • ES 4 never released : too ambitious • ES 5 in 2009 • ES 6/2015 also called Harmony • ES 7/2016
ES2015 features
Promises var promise = new Promise(function(resolve, reject) { // some
code }); promise.then(successCb, errorCb); promise.catch(errorCb); Promise.all([promise1, promise2]);
Class class MyClass extends MyParentClass { constructor (param1, param2) {
super(param1, param2); // some code } myMethod1(param) { // some code } static myMethod2(param) { // some code } }
Generator function* testYield(){ var index = 0; while(index < 3){
yield index++; } } var gen = testYield(); console.log(gen.next().value); // 0 console.log(gen.next().value); // 1 console.log(gen.next().value); // 2 console.log(gen.next().value); // undefined
Let - Const function varTest() { var x = 31;
if (true) { var x = 71; console.log(x); // 71 } console.log(x); // 71 } function letTest() { let x = 31; if (true) { let x = 71; console.log(x); // 71 } console.log(x); // 31 } const myConstant = 42; myConstant = 12; // Error const myConstant = 3; // Error
Arrow ([param] [, param]) => { instructions } param =>
expression // implicit return var square = (x) => x*x;
Arrow - Bind this lexically ES5: var myObject = {
var myString = ‘Hello’; var myArray = [‘a’, ‘b’, ‘c’]; var myMethod = function () { var self = this; this.myArray.forEach(function(element){ console.log(self.myString + element); }) } } ES2015: var myObject = { var myString = ‘Hello’; var myArray = [‘a’, ‘b’, ‘c’]; var myMethod = function () { this.myArray.forEach((element) => console.log(this.myString + element); }) } }
Destructuring var anArray = [1,2,3]; var [one, two, three] =
anArray; var [foo, [[bar], baz]] = [1, [[2], 3]]; var anObject = {prop1: ‘abc’}; var {prop1: myProp1} = anObject;
String template console.log(`first line second line`); var a = 2;
var b = 3; console.log(`the sum of a and b is ${a+b}`);
For .. of var myArray = [‘a’, ‘b’, ’c’]; for(
let myElement of myArray) { console.log(myElement); }
Modules // lib.js export square = (x) => x*x; //
main.js import {square} from lib; console.log(square(4)); NB: a lot of variation of ‘import’ syntax exist to please both AMD and Common.js users
Map set let mySet = new Set([1,2,2,2,2,2,2]); mySet.add(3); console.log(mySet.size); //
3 console.log(mySet.has(2); // true mySet.delete(2); console.log(mySet.has(2); // false
Current support
ES 2015
ES 2016
Links • http://kangax.github.io/compat-table/es6/ • http://es6katas.org/ • https://babeljs.io/docs/learn-es2015/