SlideShare a Scribd company logo
Sebastiano Armeli
@sebarmeli
http://courtreportingnyc.com/wp-content/uploads/2013/10/future-of-court-reporting.jpg
@sebarmeli
Sebastiano Armeli
ES6
History
1995	

 1996	

 1997	

 1998	

 1999	

 2000	

 2003	

(May) B. Eich invented Mocha
(Dec) LiveScript renamed to JavaScript
JSScript
(June) ECMA-262 Ed.1!
! by TC39 committee
ECMA-262 Ed.2
ECMA-262 Ed.3
ECMA-262 Ed.4 started
ECMA-262 Ed.4 abandoned
(Sep) Mocha renamed to LiveScript
History
2005	

 2007	

 2008	

 2009	

 2011	

 2013	

2014	

ES 4 again!
(Adobe, Mozilla,!
Google)!
ES 3.1 !
(Microsoft, Yahoo)!
beginning
ES 5 spec finalized
(June) ECMA-262 Ed.5
(June) ES 6
proposals freeze
(Dec) ECMA-262 Ed.6 target release
(27th April) latest spec draft
(July) Agreement: ES3.1 & ES-Harmony!
!
ES3.1 becomes ES5
ECMA-262
TC39
ES 4
ES-Harmony
ES.Next
ES 6
ECMA
ES 7
es-discuss
ES-Harmony Proposal
ES 6 Candidate
ECMA-262 Ed.6 standardized
ES 6 Specification Draft
TC39 Process
Strawman
Proposal
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
(Fat) arrow function
var y = (x) => x + 1 var y = function(x) {
return x + 1;
}
ES6 ES5
(Fat) arrow function
var y = (x) => x + 1 var y = function(x) {
return x + 1;
}
ES6 ES5
No constructor	

Syntax sugar 	

Lexical `this` binding
(Fat) arrow function
var y = (x) => x + 1 var y = function(x) {
return x + 1;
}
ES6 ES5
No constructor	

Syntax sugar 	

Lexical `this` binding
(Fat) arrow function
var y = (x) => x + 1 var y = function(x) {
return x + 1;
}
ES6 ES5
No constructor	

Syntax sugar 	

Lexical `this` binding
let x = (x) =>
{return x + 1}
var x = function(x) {
return x + 1;
}
let x = (x, y) =>
({
x: x,
y: y
})
var x = function(x, y) {
return {
x: x,
y: y
};
}
ES6 ES5
let map = words =>
words.map((w) => w.length);
var map = function(words) {
return words.map(function(w) {
return w.length;
}
}
ES6
ES5
map([‘sea’, ‘beach’, ‘do’]); // [3,5,2]
var obj = {
doIt: function(){},
handle: function(){
document.addEventListener(‘click’, function(e) {
this.doIt();
}.bind(this));
}
}
ES5
var obj = {
doIt: function(){},
handle: function(){
var that = this;
document.addEventListener(‘click’, function(e) {
that.doIt();
});
}
}
ES3
var obj = {
doIt: function(){},
handle: function(){
document.addEventListener(‘click’,
(e) => this.doIt());
}
}
ES6
Object.getPrototypeOf(() => {})
Object.getPrototypeOf(() => {})
Function.prototype
When to use
‘function’ ?
Constructors	

Generators	

Methods in obj
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping & Calling	

API improvements	

Proxies
Block Scoping
Each BLOCK has got its lexical environment	

let/const bind variables to the lexical environment	

Variables declared with let/const are NOT hoisted
var vs let
(function() {
console.log(y) // “undefined”
if (true) {
var y = “value”;
}
console.log(y) // “value”
}());
var vs let
(function() {
if (true) {
let y = “value”;
}
console.log(y) // ERROR!!
}());
(function() {
console.log(y) // “undefined”
if (true) {
var y = “value”;
}
console.log(y) // “value”
}());
const
(function() {
const X;
X = “foo”; // ERROR: x unitialized
}());
(function() {
const X = “foo”;
X = “foo2”; // ERROR: x is read-only
}());
Block functions
if (true) {
function fn () {}
}
!
fn(); // ERROR!
Destructing array
var [x,y] = [‘a’, ‘b’];
!
console.log(x); // ‘a’
!
console.log(y); // ‘b’
!
!
var [x,y] = [y, x];
!
console.log(x); // ‘b’
Destructing object
var obj = {width: 50, height: 100};
!
var {width, height} = obj;
!
console.log(width); // 50
Destructing
multiple return value
var fn = function(){
return [“50”, “100”];
}
!
var [width, height] = fn();
!
console.log(width); //50
console.log(height); //100
Default values
function(foo) {
foo = foo || “a”;
}
Default values
function(foo) {
foo = foo || “a”;
}
function(foo = “a”) {}
function fn(…args) {
console.log(args); //[“a”, “b”, “c”]
args.forEach(function(arg) {
console.log(arg);
};
}
!
fn(“a”, “b”, “c”);
!
// a
// b
// c
Rest parameters
Rest parameters
function fn(a, …args) {
console.log(args); //[“b”, “c”]
args.forEach(function(arg) {
console.log(arg);
};
}
!
fn(“a”, “b”, “c”);
!
// b
// c
Spread operator
function fn(a, b, c) {}
!
var array = [“A”, “B”, “C”];
fn.apply(null, array);
function fn(a, b, c) {}
!
var array = [“A”, “B”, “C”];
fn.apply(null, array);
fn(…array);
Spread operator
function fn(a, b, c) {
var array = Array.prototype.
slice.apply(arguments);
}
Spread operator
function fn(a, b, c) {
var array = Array.prototype.
slice.apply(arguments);
var array = […arguments];
}
Spread operator
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
for-of
for-of loop on ‘iterables’	

Arrays/Sets/Maps are ’iterables’	

for-in limitations
Iterable
{ iterator: function() -> iterator }
{ next: function() -> any }
Iterators
for-of
var array = [“a”, “b”, “c”];
!
for (let el of array) {
console.log(el);
}
!
// “a”
// “b”
// “c”
Array comprehension
var array = [1, 2, 11, 20];
!
var array_c = [x (for x of
array) (if x > 10)];
!
// [11, 20]
function* g() {
yield “a”;
yield “b”;
}
Generator
var generator = g();
generator ‘constructor’	

generator.next(); //{ value: “a”, done: false}
generator.next(); //{ value: “b”, done: false}
generator.next(); //{ value: undefined,
done: true}
!
function* g() {
yield “a”;
var retVal = yield “b”;
return retVal;
}
var generator = g();
generator.next().value; //“a”
generator.next().value; //“b”
generator.next(“c”).value; //“c”
!
function* asyncFn() {
var data = yield getUser();
doSomethingElse(data);
}
function run(genFunction) {
var generator = genFunction();
generator.next().value.then(function(val){
generator.next(val);
}, function(err) {
generator.throw(err);
});
}
run(asyncFn);
Promise
for (let el of generator) {
console.log(el);
}
Generators are iterables
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
Set
Set of values - NO duplicates	

Different type of values	

add(key)/ has(key) / delete(key)
entries() -> Iterator
let countries = new Set();
countries.add(“US”);
countries.add(“Italy”);
countries.add(“US”);
!
countries.values().next().value;
// “US”
!
countries.values().next().value;
// “Italy”
!
for(let country of countries) {
console.log(country);
}
Map
key-value	

Different type of values	

Object can be keys	

get(key)/ has(key) / set(key,val)
let dict = new Map();
dict.set(“A”, 1);
dict.set(“B”, 2);
!
dict.get(“A”); // “1”
dict.delete(“B”);
!
for(let w of dict.keys()) {
console.log(w); // “A”
}
!
for(let w of dict.values()) {
console.log(w); // “A”
}
WeakMap
Avoid memory leaks	

Reference to the key obj held weakly	

Key must be an object	

No iterators methods
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
Module
!
module “ads” {
export function register(ad) {
return ad;
}
}
!
import {register} from “ads”;
var app = {
doIt: function() {
register({});
}
}
export app;
app.js
lib/ads.js
!
module “widget” {…}
module “widget/button” {…}
module “widget/text” {…}
!
!
import ‘lib/ad’ as c;
import { meth as method } from ‘a';
!
!
export default class {}; // Ad.js
import Ad from ‘ad'; // app.js
Loader API
System.load('http://json.org/modules/json2.js',
function(JSON) {
alert(JSON.stringify([0, {a: true}]));
});
System.import
Configure module loading
Class / Subclass!
class Animal {
constructor(name) {
this.name = name;
}
toString() {
return “This is: ” + this.name;
}
}
class Cat extends Animal {
constructor(name, ownerName) {
super.constructor(name);
this.ownerName = ownerName;
}
!
toString() {
return super.toString() + “ owned by ” +
this.ownerName;
}
}
!
function Animal(name) {
this.name = name;
}
!
Animal.prototype.toString = function() {
return “This is: ” + this.name;
};
!
function Cat(name, ownerName) {
Animal.call(this, name);
this.ownerName = ownerName;
}
!
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;
Cat.prototype.parent = Animal;
!
Cat.prototype.toString = function() {
return Animal.prototype.toString.call(this) + “ owned by ”
+ this.ownerName;
}
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
String methods
startsWith()
endsWith()
contains()
…
Number methods
Number.isInteger(num)
Number.isNaN(num)
Number.isFinite(num)
…
Array methods
var divs = document.querySelectorAll("div");
Array.from(divs);
!
// [<div></div>, </div></div>]
!
Array.of(10, 11);
!
// [10, 11]
!
!
var array = [“a”, “b”, “c”];
!
for (let [index, el] of array.entries()) {
console.log(index, el); // 0 “a”
// 1 “b”
// 2 “c”
}
!
for (let index of array.keys()) {
console.log(index);
}
!
for (let el of array.values()) {
console.log(el);
}
!
Object methods
Object.setPrototypeOf(obj, proto)
Object.assign(obj, mixin)
Object.is(value1, value2)
var object = {
method() {
return “a”;
}
}
object.method(); // “a”
!
var object = {
method() {
return “a”;
}
}
object.method(); // “a”
!
function f(x, y) { return {x: x, y: y};}
function f(x, y) { return {x, y}; }
=
Math methods
Math.log2()
Math.log10()
Math.sinh()
Math.cosh()
…
Generators & Iteration	

Summary
Functions	

Collections	

Modularity	

Scoping	

API improvements	

Proxies
Proxies
var obj = {num: 1};
!
obj = Proxy(obj, {
set: function (target, property, value) {
target[property] = value + 1;
}
});
!
obj.num = 2 // [[Set]]
console.log(obj.num); // 3
Proxies
function createDefensiveObject(target) {
return new Proxy(target, {
get: function(target, property) {
if (property in target) {
return target[property];
} else {
throw new ReferenceError();
}
}
});
}
!
var obj = createDefensiveObject({name: “Seb”});
console.log(obj.lastname); //ReferenceError
http://www.nczonline.net/blog/2014/04/22/creating-defensive-objects-with-es6-proxies/
Generators & Iteration	

Recap
Functions	

Collections	

Modularity	

Scoping / Calling	

API improvements	

Proxies
Promises	

Symbols	

Generator Expressions	

Quasi-literals (template-strings)
Tools
Traceur compiler (Google)	

es6-transpiler	

es6-module-transpiler (Square)	

es6-shim	

defs.js
http://wiki.ecmascript.org/doku.php
https://people.mozilla.org/~jorendorff/es6-draft.html
http://kangax.github.io/compat-table/es6/
http://esdiscuss.org/
@sebarmeli
Sebastiano Armeli

More Related Content

What's hot

Introduction to Ecmascript - ES6
Introduction to Ecmascript - ES6Introduction to Ecmascript - ES6
Introduction to Ecmascript - ES6
Nilesh Jayanandana
 
ES6 PPT FOR 2016
ES6 PPT FOR 2016ES6 PPT FOR 2016
ES6 PPT FOR 2016
Manoj Kumar
 
EcmaScript 6
EcmaScript 6 EcmaScript 6
EcmaScript 6
Manoj Kumar
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
Kevin Langley Jr.
 
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
Allen Wirfs-Brock
 
JavaScript ES6
JavaScript ES6JavaScript ES6
JavaScript ES6
Leo Hernandez
 
ES6: Features + Rails
ES6: Features + RailsES6: Features + Rails
ES6: Features + Rails
Santosh Wadghule
 
Async Frontiers
Async FrontiersAsync Frontiers
Async Frontiers
Domenic Denicola
 
Javascript ES6 generators
Javascript ES6 generatorsJavascript ES6 generators
Javascript ES6 generators
Ramesh Nair
 
What's New in ES6 for Web Devs
What's New in ES6 for Web DevsWhat's New in ES6 for Web Devs
What's New in ES6 for Web Devs
Rami Sayar
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
Proxies are Awesome!
Brendan Eich
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
Wanbok Choi
 
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
 
Planet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance EnhancementPlanet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance Enhancement
up2soul
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftGiordano Scalzo
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architecture
Jung Kim
 
The Promised Land (in Angular)
The Promised Land (in Angular)The Promised Land (in Angular)
The Promised Land (in Angular)
Domenic Denicola
 
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Jung Kim
 
Minimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team ProductivityMinimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team Productivity
Derek Lee Boire
 
ES6 Overview
ES6 OverviewES6 Overview
ES6 Overview
Bruno Scopelliti
 

What's hot (20)

Introduction to Ecmascript - ES6
Introduction to Ecmascript - ES6Introduction to Ecmascript - ES6
Introduction to Ecmascript - ES6
 
ES6 PPT FOR 2016
ES6 PPT FOR 2016ES6 PPT FOR 2016
ES6 PPT FOR 2016
 
EcmaScript 6
EcmaScript 6 EcmaScript 6
EcmaScript 6
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
 
JavaScript ES6
JavaScript ES6JavaScript ES6
JavaScript ES6
 
ES6: Features + Rails
ES6: Features + RailsES6: Features + Rails
ES6: Features + Rails
 
Async Frontiers
Async FrontiersAsync Frontiers
Async Frontiers
 
Javascript ES6 generators
Javascript ES6 generatorsJavascript ES6 generators
Javascript ES6 generators
 
What's New in ES6 for Web Devs
What's New in ES6 for Web DevsWhat's New in ES6 for Web Devs
What's New in ES6 for Web Devs
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
Proxies are Awesome!
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
 
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
 
Planet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance EnhancementPlanet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance Enhancement
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architecture
 
The Promised Land (in Angular)
The Promised Land (in Angular)The Promised Land (in Angular)
The Promised Land (in Angular)
 
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
 
Minimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team ProductivityMinimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team Productivity
 
ES6 Overview
ES6 OverviewES6 Overview
ES6 Overview
 

Viewers also liked

A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 features
Michal Juhas
 
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaciWebinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
Jaroslav Prodelal
 
ES2015 and Beyond
ES2015 and BeyondES2015 and Beyond
ES2015 and Beyond
Jay Phelps
 
BMD 5 opdracht 2
BMD 5 opdracht 2BMD 5 opdracht 2
BMD 5 opdracht 2DienoSaurus
 
Tutorial: How to work with app “3D Molecules Edit & Test”
Tutorial: How to work with app “3D Molecules Edit & Test” Tutorial: How to work with app “3D Molecules Edit & Test”
Tutorial: How to work with app “3D Molecules Edit & Test”
Mikhail Morozov
 
Bmd opdracht 3 huis2
Bmd opdracht 3 huis2Bmd opdracht 3 huis2
Bmd opdracht 3 huis2
DienoSaurus
 
Backbone.js in a real-life application
Backbone.js in a real-life applicationBackbone.js in a real-life application
Backbone.js in a real-life application
Sebastiano Armeli
 
vAcademia 2015
vAcademia 2015vAcademia 2015
vAcademia 2015
Mikhail Morozov
 
Icalt2002 2
Icalt2002 2Icalt2002 2
Icalt2002 2
Mikhail Morozov
 
Build my dream 4 opdracht 02 deel 1/2
Build my dream 4 opdracht 02  deel 1/2Build my dream 4 opdracht 02  deel 1/2
Build my dream 4 opdracht 02 deel 1/2DienoSaurus
 

Viewers also liked (20)

A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 features
 
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaciWebinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
 
ES2015 and Beyond
ES2015 and BeyondES2015 and Beyond
ES2015 and Beyond
 
BMD 5 opdracht 2
BMD 5 opdracht 2BMD 5 opdracht 2
BMD 5 opdracht 2
 
Bmd opdracht 2
Bmd opdracht 2Bmd opdracht 2
Bmd opdracht 2
 
Tutorial: How to work with app “3D Molecules Edit & Test”
Tutorial: How to work with app “3D Molecules Edit & Test” Tutorial: How to work with app “3D Molecules Edit & Test”
Tutorial: How to work with app “3D Molecules Edit & Test”
 
Halloween info
Halloween infoHalloween info
Halloween info
 
Bmd opdracht 3 huis2
Bmd opdracht 3 huis2Bmd opdracht 3 huis2
Bmd opdracht 3 huis2
 
BMD opdracht 1
BMD opdracht 1BMD opdracht 1
BMD opdracht 1
 
Halloween
HalloweenHalloween
Halloween
 
E learning-2004
E learning-2004E learning-2004
E learning-2004
 
Backbone.js in a real-life application
Backbone.js in a real-life applicationBackbone.js in a real-life application
Backbone.js in a real-life application
 
vAcademia 2015
vAcademia 2015vAcademia 2015
vAcademia 2015
 
Icalt2002 2
Icalt2002 2Icalt2002 2
Icalt2002 2
 
Scotland
ScotlandScotland
Scotland
 
Timetable daniela huber
Timetable daniela huberTimetable daniela huber
Timetable daniela huber
 
Build my dream 4 opdracht 02 deel 1/2
Build my dream 4 opdracht 02  deel 1/2Build my dream 4 opdracht 02  deel 1/2
Build my dream 4 opdracht 02 deel 1/2
 
Valentine s day_leitner
Valentine s day_leitnerValentine s day_leitner
Valentine s day_leitner
 
Summit 17 04
Summit 17 04Summit 17 04
Summit 17 04
 
Scotland pic
Scotland picScotland pic
Scotland pic
 

Similar to EcmaScript 6 - The future is here

ES6: The future is now
ES6: The future is nowES6: The future is now
ES6: The future is now
Sebastiano Armeli
 
JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8
Rafael Casuso Romate
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
Visual Engineering
 
"let ECMAScript = 6"
"let ECMAScript = 6" "let ECMAScript = 6"
"let ECMAScript = 6"
The Software House
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
ECMAScript 6 Review
ECMAScript 6 ReviewECMAScript 6 Review
ECMAScript 6 Review
Sperasoft
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
偉格 高
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPresswpnepal
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
Mohd Saeed
 
Javascript
JavascriptJavascript
Javascript
Vlad Ifrim
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
Domenic Denicola
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
Rifatul Islam
 
Java 8: the good parts!
Java 8: the good parts!Java 8: the good parts!
Java 8: the good parts!
Andrzej Grzesik
 
JavaOne 2013: Java 8 - The Good Parts
JavaOne 2013: Java 8 - The Good PartsJavaOne 2013: Java 8 - The Good Parts
JavaOne 2013: Java 8 - The Good Parts
Konrad Malawski
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
Krzysztof Szafranek
 
Diseño y Desarrollo de APIs
Diseño y Desarrollo de APIsDiseño y Desarrollo de APIs
Diseño y Desarrollo de APIs
Raúl Neis
 
Es6 hackathon
Es6 hackathonEs6 hackathon
Es6 hackathon
Justin Alexander
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6Dmitry Soshnikov
 
Module design pattern i.e. express js
Module design pattern i.e. express jsModule design pattern i.e. express js
Module design pattern i.e. express js
Ahmed Assaf
 
Painless Javascript Unit Testing
Painless Javascript Unit TestingPainless Javascript Unit Testing
Painless Javascript Unit Testing
Benjamin Wilson
 

Similar to EcmaScript 6 - The future is here (20)

ES6: The future is now
ES6: The future is nowES6: The future is now
ES6: The future is now
 
JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
 
"let ECMAScript = 6"
"let ECMAScript = 6" "let ECMAScript = 6"
"let ECMAScript = 6"
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
ECMAScript 6 Review
ECMAScript 6 ReviewECMAScript 6 Review
ECMAScript 6 Review
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
 
Javascript
JavascriptJavascript
Javascript
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
Java 8: the good parts!
Java 8: the good parts!Java 8: the good parts!
Java 8: the good parts!
 
JavaOne 2013: Java 8 - The Good Parts
JavaOne 2013: Java 8 - The Good PartsJavaOne 2013: Java 8 - The Good Parts
JavaOne 2013: Java 8 - The Good Parts
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
 
Diseño y Desarrollo de APIs
Diseño y Desarrollo de APIsDiseño y Desarrollo de APIs
Diseño y Desarrollo de APIs
 
Es6 hackathon
Es6 hackathonEs6 hackathon
Es6 hackathon
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
 
Module design pattern i.e. express js
Module design pattern i.e. express jsModule design pattern i.e. express js
Module design pattern i.e. express js
 
Painless Javascript Unit Testing
Painless Javascript Unit TestingPainless Javascript Unit Testing
Painless Javascript Unit Testing
 

More from Sebastiano Armeli

Managing a software engineering team
Managing a software engineering teamManaging a software engineering team
Managing a software engineering team
Sebastiano Armeli
 
Enforcing coding standards in a JS project
Enforcing coding standards in a JS projectEnforcing coding standards in a JS project
Enforcing coding standards in a JS project
Sebastiano Armeli
 
Enforcing coding standards
Enforcing coding standardsEnforcing coding standards
Enforcing coding standards
Sebastiano Armeli
 
Dependency management & Package management in JavaScript
Dependency management & Package management in JavaScriptDependency management & Package management in JavaScript
Dependency management & Package management in JavaScript
Sebastiano Armeli
 
Karma - JS Test Runner
Karma - JS Test RunnerKarma - JS Test Runner
Karma - JS Test Runner
Sebastiano Armeli
 
RequireJS
RequireJSRequireJS
Lazy load Everything!
Lazy load Everything!Lazy load Everything!
Lazy load Everything!
Sebastiano Armeli
 
MVC on the server and on the client
MVC on the server and on the clientMVC on the server and on the client
MVC on the server and on the client
Sebastiano Armeli
 
Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2
Sebastiano Armeli
 
Web Storage
Web StorageWeb Storage
Web Storage
Sebastiano Armeli
 

More from Sebastiano Armeli (10)

Managing a software engineering team
Managing a software engineering teamManaging a software engineering team
Managing a software engineering team
 
Enforcing coding standards in a JS project
Enforcing coding standards in a JS projectEnforcing coding standards in a JS project
Enforcing coding standards in a JS project
 
Enforcing coding standards
Enforcing coding standardsEnforcing coding standards
Enforcing coding standards
 
Dependency management & Package management in JavaScript
Dependency management & Package management in JavaScriptDependency management & Package management in JavaScript
Dependency management & Package management in JavaScript
 
Karma - JS Test Runner
Karma - JS Test RunnerKarma - JS Test Runner
Karma - JS Test Runner
 
RequireJS
RequireJSRequireJS
RequireJS
 
Lazy load Everything!
Lazy load Everything!Lazy load Everything!
Lazy load Everything!
 
MVC on the server and on the client
MVC on the server and on the clientMVC on the server and on the client
MVC on the server and on the client
 
Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2
 
Web Storage
Web StorageWeb Storage
Web Storage
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 

EcmaScript 6 - The future is here