SlideShare a Scribd company logo
INTRO TO
ES6/2015
MEAN STACK NYC | INTRO TO ES6/2015
Jamal O’Garro
Software Engineer + Instructor
WHAT’S BEING COVERED TODAY
• Let and Const
• Block Scoping
• Template Strings
• Iterators
• Fat Arrow Syntax
• Class Syntax
• Promises
• Generators
MEAN STACK NYC | INTRO TO ES6/2015
BRIEF HISTORY OF JAVASCRIPT
• Created by Netscape as a
browser scripting language
• Node.js allows JS to be run
on the server
• ES6 standard is announced
MEAN STACK NYC | INTRO TO ES6/2015
WHAT IS ECMASCRIPT?
• Specification that JavaScript is developed against
MEAN STACK NYC | INTRO TO ES6/2015
WHAT IS ES6?
• Most recent version of the ECMAScript specification
• Introduces powerful new features and new syntax
• Is available for use now in most modern browsers
MEAN STACK NYC | INTRO TO ES6/2015
WHY USE ES6?
• Allows us to write “safer” JavaScript
• Get to use a “nicer” syntax
• It’s the future and the future is now!
MEAN STACK NYC | INTRO TO ES6/2015
NEW LANGUAGE FEATURES
MEAN STACK NYC | INTRO TO ES6/2015
LET + CONST
MEAN STACK NYC | INTRO TO ES6/2015
LET + CONST RECAP
• “let” and “const” allow us to have block scoping
• “const” allows us to create immutable data
• We also have the ability to create blocks on-the-fly
MEAN STACK NYC | INTRO TO ES6/2015
TEMPLATE STRINGS
MEAN STACK NYC | INTRO TO ES6/2015
TEMPLATE STRINGS RECAP
• Allow us to perform string interpolation in JavaScript
• Prevents us from having to concat strings
• Get a performance boost over string concatenation
MEAN STACK NYC | INTRO TO ES6/2015
FAT ARROW FUNCTIONS
MEAN STACK NYC | INTRO TO ES6/2015
FAT ARROW RECAP
• Provide a new syntax to represent lambda functions
• Give us a lexical “this” in functions that aren’t direct
properties of objects
MEAN STACK NYC | INTRO TO ES6/2015
NEW OBJECT SYNTAX
MEAN STACK NYC | INTRO TO ES6/2015
NEW OBJECT SYNTAX RECAP
• Syntactic sugar for creating properties of objects
MEAN STACK NYC | INTRO TO ES6/2015
CLASSES
MEAN STACK NYC | INTRO TO ES6/2015
CLASSES RECAP
• Syntax “sugar” for constructor functions
• Easy inheritance
• Super keyword
• Clean way to create static methods
MEAN STACK NYC | INTRO TO ES6/2015
NEW DATA TYPES
MEAN STACK NYC | INTRO TO ES6/2015
ITERATORS
MEAN STACK NYC | INTRO TO ES6/2015
ITERATOR VS. ITERABLE
• Iterator - allows us to produce a sequence of values
(Generators, etc.)
• Iterable - Means an object can be iterated (String, Array,
Map, Set, etc.)
MEAN STACK NYC | INTRO TO ES6/2015
PROMISES
MEAN STACK NYC | INTRO TO ES6/2015
PROMISE RECAP
• Allow us to work with Promises natively in the language
MEAN STACK NYC | INTRO TO ES6/2015
GENERATORS
MEAN STACK NYC | INTRO TO ES6/2015
WHY ARE GENERATORS USEFUL?
• Allow us to pause a function
• Control of the function’s execution externally
• Can pass data to the paused execution
• Can be used for asynchronous coding that “looks”
synchronous
MEAN STACK NYC | INTRO TO ES6/2015
SUMMARY
MEAN STACK NYC | INTRO TO ES6/2015
WHAT DID WE NOT COVER TODAY?
• Symbols
• Maps
• Weak Maps
• Sets
• Weak Sets
• Some features that are not ready (at least not in V8 and Node)
MEAN STACK NYC | INTRO TO ES6/2015
WHAT’S CURRENTLY NOT AVAILABLE?
• Destructured assignment
• Parameter Default Values
• Rest
• Spread
• Modules
• Proxies
• Typed Array
MEAN STACK NYC | INTRO TO ES6/2015
HOW TO USE WHAT’S NOT READY?
• Polyfills
• Transpilers
• Babel.js
• Tracuer
• TypeScript
MEAN STACK NYC | INTRO TO ES6/2015
THANK YOU!!!
Jamal O’Garro
Software Engineer + Instructor
MEAN STACK NYC | INTRO TO ES6/2015

More Related Content

What's hot

Containers across Clouds - Docker Randstad, April 17th, 2015
Containers across Clouds - Docker Randstad, April 17th, 2015Containers across Clouds - Docker Randstad, April 17th, 2015
Containers across Clouds - Docker Randstad, April 17th, 2015
Fintan Ryan
 
Geek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : CucumberGeek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : Cucumber
OLBATI
 
Meetup Angular.JS #12 Paris
Meetup Angular.JS #12 ParisMeetup Angular.JS #12 Paris
Meetup Angular.JS #12 Paris
Sylvain Utard
 
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
Glance at Visual Studio 2013  ASP.NET and Web tools 2013Glance at Visual Studio 2013  ASP.NET and Web tools 2013
Glance at Visual Studio 2013 ASP.NET and Web tools 2013Shravan Kumar Kasagoni
 
A 5 Minute Intro To Weave - Software Circus July 2015
A 5 Minute Intro To Weave - Software Circus July 2015A 5 Minute Intro To Weave - Software Circus July 2015
A 5 Minute Intro To Weave - Software Circus July 2015
Weaveworks
 
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Timothy Ricablanca
 
Icinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 ConfigurationIcinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 Configuration
Icinga
 
OpenStack Swift: Panoramic View
OpenStack Swift: Panoramic ViewOpenStack Swift: Panoramic View
OpenStack Swift: Panoramic View
Atul Jha
 
AngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic AssistantAngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic Assistant
Miloš Bošković
 
Icinga Director
Icinga DirectorIcinga Director
Icinga Director
Icinga
 
Algolia - Hosted Search API
Algolia - Hosted Search API Algolia - Hosted Search API
Algolia - Hosted Search API
enterprisesearchmeetup
 
Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.
UA Mobile
 
Owasp top 10 serverless
Owasp top 10 serverlessOwasp top 10 serverless
Owasp top 10 serverless
隆博 田中
 
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Spark Solutions
 
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
Igalia
 
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the MetricsIcinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga
 
Saluki - do it like a user
Saluki - do it like a userSaluki - do it like a user
Saluki - do it like a user
Icinga
 
Icinga Web 2 at Icinga Camp San Francisco
Icinga Web 2 at Icinga Camp San FranciscoIcinga Web 2 at Icinga Camp San Francisco
Icinga Web 2 at Icinga Camp San Francisco
Icinga
 

What's hot (18)

Containers across Clouds - Docker Randstad, April 17th, 2015
Containers across Clouds - Docker Randstad, April 17th, 2015Containers across Clouds - Docker Randstad, April 17th, 2015
Containers across Clouds - Docker Randstad, April 17th, 2015
 
Geek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : CucumberGeek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : Cucumber
 
Meetup Angular.JS #12 Paris
Meetup Angular.JS #12 ParisMeetup Angular.JS #12 Paris
Meetup Angular.JS #12 Paris
 
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
Glance at Visual Studio 2013  ASP.NET and Web tools 2013Glance at Visual Studio 2013  ASP.NET and Web tools 2013
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
 
A 5 Minute Intro To Weave - Software Circus July 2015
A 5 Minute Intro To Weave - Software Circus July 2015A 5 Minute Intro To Weave - Software Circus July 2015
A 5 Minute Intro To Weave - Software Circus July 2015
 
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
 
Icinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 ConfigurationIcinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 Configuration
 
OpenStack Swift: Panoramic View
OpenStack Swift: Panoramic ViewOpenStack Swift: Panoramic View
OpenStack Swift: Panoramic View
 
AngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic AssistantAngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic Assistant
 
Icinga Director
Icinga DirectorIcinga Director
Icinga Director
 
Algolia - Hosted Search API
Algolia - Hosted Search API Algolia - Hosted Search API
Algolia - Hosted Search API
 
Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.
 
Owasp top 10 serverless
Owasp top 10 serverlessOwasp top 10 serverless
Owasp top 10 serverless
 
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
Jimmie Lindstrom, Braintree_ePayment Workshop @ Open Commerce Conference 2016
 
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
Review of Igalia's Contribution to WebKit (2018 WebKit Contributors Meeting)
 
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the MetricsIcinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the Metrics
 
Saluki - do it like a user
Saluki - do it like a userSaluki - do it like a user
Saluki - do it like a user
 
Icinga Web 2 at Icinga Camp San Francisco
Icinga Web 2 at Icinga Camp San FranciscoIcinga Web 2 at Icinga Camp San Francisco
Icinga Web 2 at Icinga Camp San Francisco
 

Viewers also liked

Intro to Node.js
Intro to Node.jsIntro to Node.js
Intro to Node.js
Jamal Sinclair O'Garro
 
Trabajo final competencias
Trabajo final competenciasTrabajo final competencias
Trabajo final competencias
Yinethreyes
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
AMD Developer Central
 
Toolkit of modern web development (DevFest Košice 7.5.2016)
Toolkit of modern web development (DevFest Košice 7.5.2016)Toolkit of modern web development (DevFest Košice 7.5.2016)
Toolkit of modern web development (DevFest Košice 7.5.2016)
jskvara
 
교보문고 전자책 모바일 이용방법
교보문고 전자책 모바일 이용방법교보문고 전자책 모바일 이용방법
교보문고 전자책 모바일 이용방법
yonseilibrary
 
Key lets read south africa eating a rainbow
Key lets read south africa eating a rainbowKey lets read south africa eating a rainbow
Key lets read south africa eating a rainbow
Mar Caston Palacio
 
Key lets read south africa culture quiz
Key lets read south africa culture quizKey lets read south africa culture quiz
Key lets read south africa culture quiz
Mar Caston Palacio
 
Propiedades de las cargas electricas
Propiedades de las cargas electricasPropiedades de las cargas electricas
Propiedades de las cargas electricas
innovalabcun
 
Reversible cerebral vasoconstriction syndrome
Reversible cerebral vasoconstriction syndromeReversible cerebral vasoconstriction syndrome
Reversible cerebral vasoconstriction syndrome
Prisma Health Upstate
 
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
Μάκης Χατζόπουλος
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
NodejsFoundation
 
Aufschieberitis-Tag
Aufschieberitis-TagAufschieberitis-Tag
Aufschieberitis-Tag
Meike Kranz
 
Nouveautés du CDI du mois de Mars
Nouveautés du CDI du mois de MarsNouveautés du CDI du mois de Mars
Nouveautés du CDI du mois de Mars
cdifromentin
 
Matriz 2 fase 1 yineth_reyes_gc177
Matriz 2  fase 1 yineth_reyes_gc177Matriz 2  fase 1 yineth_reyes_gc177
Matriz 2 fase 1 yineth_reyes_gc177
Yinethreyes
 
GST Company Profile
GST Company ProfileGST Company Profile
GST Company Profile
Gothong
 
Стой Внимание Иди
Стой Внимание ИдиСтой Внимание Иди
Стой Внимание Иди
Anastasia Simonova
 
Störungen vermeiden
Störungen vermeidenStörungen vermeiden
Störungen vermeiden
Meike Kranz
 

Viewers also liked (17)

Intro to Node.js
Intro to Node.jsIntro to Node.js
Intro to Node.js
 
Trabajo final competencias
Trabajo final competenciasTrabajo final competencias
Trabajo final competencias
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Toolkit of modern web development (DevFest Košice 7.5.2016)
Toolkit of modern web development (DevFest Košice 7.5.2016)Toolkit of modern web development (DevFest Košice 7.5.2016)
Toolkit of modern web development (DevFest Košice 7.5.2016)
 
교보문고 전자책 모바일 이용방법
교보문고 전자책 모바일 이용방법교보문고 전자책 모바일 이용방법
교보문고 전자책 모바일 이용방법
 
Key lets read south africa eating a rainbow
Key lets read south africa eating a rainbowKey lets read south africa eating a rainbow
Key lets read south africa eating a rainbow
 
Key lets read south africa culture quiz
Key lets read south africa culture quizKey lets read south africa culture quiz
Key lets read south africa culture quiz
 
Propiedades de las cargas electricas
Propiedades de las cargas electricasPropiedades de las cargas electricas
Propiedades de las cargas electricas
 
Reversible cerebral vasoconstriction syndrome
Reversible cerebral vasoconstriction syndromeReversible cerebral vasoconstriction syndrome
Reversible cerebral vasoconstriction syndrome
 
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
Προσαρμοσμένο διαγώνισμα στις παραγράφους 2.6 2.10
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
Aufschieberitis-Tag
Aufschieberitis-TagAufschieberitis-Tag
Aufschieberitis-Tag
 
Nouveautés du CDI du mois de Mars
Nouveautés du CDI du mois de MarsNouveautés du CDI du mois de Mars
Nouveautés du CDI du mois de Mars
 
Matriz 2 fase 1 yineth_reyes_gc177
Matriz 2  fase 1 yineth_reyes_gc177Matriz 2  fase 1 yineth_reyes_gc177
Matriz 2 fase 1 yineth_reyes_gc177
 
GST Company Profile
GST Company ProfileGST Company Profile
GST Company Profile
 
Стой Внимание Иди
Стой Внимание ИдиСтой Внимание Иди
Стой Внимание Иди
 
Störungen vermeiden
Störungen vermeidenStörungen vermeiden
Störungen vermeiden
 

Similar to Intro to ES6 / ES2015

Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Christian Heilmann
 
slides-students-C03.pdf
slides-students-C03.pdfslides-students-C03.pdf
slides-students-C03.pdf
HARDIKGUPTAMCO21373
 
WebAssemlby vs JavaScript
WebAssemlby vs JavaScriptWebAssemlby vs JavaScript
WebAssemlby vs JavaScript
Alexandr Skachkov
 
BelTech 2017 - Building Quality in the Browser
BelTech 2017 - Building Quality in the BrowserBelTech 2017 - Building Quality in the Browser
BelTech 2017 - Building Quality in the Browser
Eamonn Boyle
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and Typescript
Christian Heilmann
 
Generating NoSQL from SQL
Generating NoSQL from SQLGenerating NoSQL from SQL
Generating NoSQL from SQL
Peter Milne
 
ECMAScript: past, present and future
ECMAScript: past, present and futureECMAScript: past, present and future
ECMAScript: past, present and future
Kseniya Redunova
 
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in productionUsing JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Anže Žnidaršič
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
Christian Heilmann
 
The ES6 Conundrum - All Things Open 2015
The ES6 Conundrum - All Things Open 2015The ES6 Conundrum - All Things Open 2015
The ES6 Conundrum - All Things Open 2015
Christian Heilmann
 
JavaScript-Basic-Chapter1-Presentation.pptx
JavaScript-Basic-Chapter1-Presentation.pptxJavaScript-Basic-Chapter1-Presentation.pptx
JavaScript-Basic-Chapter1-Presentation.pptx
Justcode 2023
 
10 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 610 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 6
Lohith Goudagere Nagaraj
 
ES 6 - Jakarta Javascript Meetup
ES 6 - Jakarta Javascript MeetupES 6 - Jakarta Javascript Meetup
ES 6 - Jakarta Javascript Meetup
Sofian Hadiwijaya
 
ESNext, service workers, and the future of the web
ESNext, service workers, and the future of the webESNext, service workers, and the future of the web
ESNext, service workers, and the future of the web
Jemuel Young
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
FalafelSoftware
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
Typescript - MentorMate Academy
Typescript - MentorMate AcademyTypescript - MentorMate Academy
Typescript - MentorMate Academy
Dimitar Danailov
 
Lagergren jvmls-2014-final
Lagergren jvmls-2014-finalLagergren jvmls-2014-final
Lagergren jvmls-2014-final
Marcus Lagergren
 
Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?
Garth Gilmour
 
The short path to ecma 6
The short path to ecma 6The short path to ecma 6
The short path to ecma 6Giorgio Natili
 

Similar to Intro to ES6 / ES2015 (20)

Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
 
slides-students-C03.pdf
slides-students-C03.pdfslides-students-C03.pdf
slides-students-C03.pdf
 
WebAssemlby vs JavaScript
WebAssemlby vs JavaScriptWebAssemlby vs JavaScript
WebAssemlby vs JavaScript
 
BelTech 2017 - Building Quality in the Browser
BelTech 2017 - Building Quality in the BrowserBelTech 2017 - Building Quality in the Browser
BelTech 2017 - Building Quality in the Browser
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and Typescript
 
Generating NoSQL from SQL
Generating NoSQL from SQLGenerating NoSQL from SQL
Generating NoSQL from SQL
 
ECMAScript: past, present and future
ECMAScript: past, present and futureECMAScript: past, present and future
ECMAScript: past, present and future
 
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in productionUsing JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
 
The ES6 Conundrum - All Things Open 2015
The ES6 Conundrum - All Things Open 2015The ES6 Conundrum - All Things Open 2015
The ES6 Conundrum - All Things Open 2015
 
JavaScript-Basic-Chapter1-Presentation.pptx
JavaScript-Basic-Chapter1-Presentation.pptxJavaScript-Basic-Chapter1-Presentation.pptx
JavaScript-Basic-Chapter1-Presentation.pptx
 
10 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 610 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 6
 
ES 6 - Jakarta Javascript Meetup
ES 6 - Jakarta Javascript MeetupES 6 - Jakarta Javascript Meetup
ES 6 - Jakarta Javascript Meetup
 
ESNext, service workers, and the future of the web
ESNext, service workers, and the future of the webESNext, service workers, and the future of the web
ESNext, service workers, and the future of the web
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Typescript - MentorMate Academy
Typescript - MentorMate AcademyTypescript - MentorMate Academy
Typescript - MentorMate Academy
 
Lagergren jvmls-2014-final
Lagergren jvmls-2014-finalLagergren jvmls-2014-final
Lagergren jvmls-2014-final
 
Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?
 
The short path to ecma 6
The short path to ecma 6The short path to ecma 6
The short path to ecma 6
 

More from Jamal Sinclair O'Garro

A Look at TensorFlow.js
A Look at TensorFlow.jsA Look at TensorFlow.js
A Look at TensorFlow.js
Jamal Sinclair O'Garro
 
Intro to React
Intro to ReactIntro to React
Intro to React
Jamal Sinclair O'Garro
 
React + Redux for Web Developers
React + Redux for Web DevelopersReact + Redux for Web Developers
React + Redux for Web Developers
Jamal Sinclair O'Garro
 
Intro to ionic 2
Intro to ionic 2Intro to ionic 2
Intro to ionic 2
Jamal Sinclair O'Garro
 
The Ten Code Commandments
The Ten Code CommandmentsThe Ten Code Commandments
The Ten Code Commandments
Jamal Sinclair O'Garro
 
Using TypeScript with Angular
Using TypeScript with AngularUsing TypeScript with Angular
Using TypeScript with Angular
Jamal Sinclair O'Garro
 
Intro to UI-Router/TypeScript
Intro to UI-Router/TypeScriptIntro to UI-Router/TypeScript
Intro to UI-Router/TypeScript
Jamal Sinclair O'Garro
 
Intro to iOS Development
Intro to iOS DevelopmentIntro to iOS Development
Intro to iOS Development
Jamal Sinclair O'Garro
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
Jamal Sinclair O'Garro
 
Intro to rails 2_kg_edited
Intro to rails 2_kg_editedIntro to rails 2_kg_edited
Intro to rails 2_kg_edited
Jamal Sinclair O'Garro
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
Jamal Sinclair O'Garro
 
Intro to javascript (4 week)
Intro to javascript (4 week)Intro to javascript (4 week)
Intro to javascript (4 week)
Jamal Sinclair O'Garro
 
Intro to HTML + CSS
Intro to HTML + CSSIntro to HTML + CSS
Intro to HTML + CSS
Jamal Sinclair O'Garro
 
Intro to Programming
Intro to ProgrammingIntro to Programming
Intro to Programming
Jamal Sinclair O'Garro
 

More from Jamal Sinclair O'Garro (14)

A Look at TensorFlow.js
A Look at TensorFlow.jsA Look at TensorFlow.js
A Look at TensorFlow.js
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
React + Redux for Web Developers
React + Redux for Web DevelopersReact + Redux for Web Developers
React + Redux for Web Developers
 
Intro to ionic 2
Intro to ionic 2Intro to ionic 2
Intro to ionic 2
 
The Ten Code Commandments
The Ten Code CommandmentsThe Ten Code Commandments
The Ten Code Commandments
 
Using TypeScript with Angular
Using TypeScript with AngularUsing TypeScript with Angular
Using TypeScript with Angular
 
Intro to UI-Router/TypeScript
Intro to UI-Router/TypeScriptIntro to UI-Router/TypeScript
Intro to UI-Router/TypeScript
 
Intro to iOS Development
Intro to iOS DevelopmentIntro to iOS Development
Intro to iOS Development
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Intro to rails 2_kg_edited
Intro to rails 2_kg_editedIntro to rails 2_kg_edited
Intro to rails 2_kg_edited
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
 
Intro to javascript (4 week)
Intro to javascript (4 week)Intro to javascript (4 week)
Intro to javascript (4 week)
 
Intro to HTML + CSS
Intro to HTML + CSSIntro to HTML + CSS
Intro to HTML + CSS
 
Intro to Programming
Intro to ProgrammingIntro to Programming
Intro to Programming
 

Recently uploaded

Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Intro to ES6 / ES2015

  • 1. INTRO TO ES6/2015 MEAN STACK NYC | INTRO TO ES6/2015 Jamal O’Garro Software Engineer + Instructor
  • 2. WHAT’S BEING COVERED TODAY • Let and Const • Block Scoping • Template Strings • Iterators • Fat Arrow Syntax • Class Syntax • Promises • Generators MEAN STACK NYC | INTRO TO ES6/2015
  • 3. BRIEF HISTORY OF JAVASCRIPT • Created by Netscape as a browser scripting language • Node.js allows JS to be run on the server • ES6 standard is announced MEAN STACK NYC | INTRO TO ES6/2015
  • 4. WHAT IS ECMASCRIPT? • Specification that JavaScript is developed against MEAN STACK NYC | INTRO TO ES6/2015
  • 5. WHAT IS ES6? • Most recent version of the ECMAScript specification • Introduces powerful new features and new syntax • Is available for use now in most modern browsers MEAN STACK NYC | INTRO TO ES6/2015
  • 6. WHY USE ES6? • Allows us to write “safer” JavaScript • Get to use a “nicer” syntax • It’s the future and the future is now! MEAN STACK NYC | INTRO TO ES6/2015
  • 7. NEW LANGUAGE FEATURES MEAN STACK NYC | INTRO TO ES6/2015
  • 8. LET + CONST MEAN STACK NYC | INTRO TO ES6/2015
  • 9. LET + CONST RECAP • “let” and “const” allow us to have block scoping • “const” allows us to create immutable data • We also have the ability to create blocks on-the-fly MEAN STACK NYC | INTRO TO ES6/2015
  • 10. TEMPLATE STRINGS MEAN STACK NYC | INTRO TO ES6/2015
  • 11. TEMPLATE STRINGS RECAP • Allow us to perform string interpolation in JavaScript • Prevents us from having to concat strings • Get a performance boost over string concatenation MEAN STACK NYC | INTRO TO ES6/2015
  • 12. FAT ARROW FUNCTIONS MEAN STACK NYC | INTRO TO ES6/2015
  • 13. FAT ARROW RECAP • Provide a new syntax to represent lambda functions • Give us a lexical “this” in functions that aren’t direct properties of objects MEAN STACK NYC | INTRO TO ES6/2015
  • 14. NEW OBJECT SYNTAX MEAN STACK NYC | INTRO TO ES6/2015
  • 15. NEW OBJECT SYNTAX RECAP • Syntactic sugar for creating properties of objects MEAN STACK NYC | INTRO TO ES6/2015
  • 16. CLASSES MEAN STACK NYC | INTRO TO ES6/2015
  • 17. CLASSES RECAP • Syntax “sugar” for constructor functions • Easy inheritance • Super keyword • Clean way to create static methods MEAN STACK NYC | INTRO TO ES6/2015
  • 18. NEW DATA TYPES MEAN STACK NYC | INTRO TO ES6/2015
  • 19. ITERATORS MEAN STACK NYC | INTRO TO ES6/2015
  • 20. ITERATOR VS. ITERABLE • Iterator - allows us to produce a sequence of values (Generators, etc.) • Iterable - Means an object can be iterated (String, Array, Map, Set, etc.) MEAN STACK NYC | INTRO TO ES6/2015
  • 21. PROMISES MEAN STACK NYC | INTRO TO ES6/2015
  • 22. PROMISE RECAP • Allow us to work with Promises natively in the language MEAN STACK NYC | INTRO TO ES6/2015
  • 23. GENERATORS MEAN STACK NYC | INTRO TO ES6/2015
  • 24. WHY ARE GENERATORS USEFUL? • Allow us to pause a function • Control of the function’s execution externally • Can pass data to the paused execution • Can be used for asynchronous coding that “looks” synchronous MEAN STACK NYC | INTRO TO ES6/2015
  • 25. SUMMARY MEAN STACK NYC | INTRO TO ES6/2015
  • 26. WHAT DID WE NOT COVER TODAY? • Symbols • Maps • Weak Maps • Sets • Weak Sets • Some features that are not ready (at least not in V8 and Node) MEAN STACK NYC | INTRO TO ES6/2015
  • 27. WHAT’S CURRENTLY NOT AVAILABLE? • Destructured assignment • Parameter Default Values • Rest • Spread • Modules • Proxies • Typed Array MEAN STACK NYC | INTRO TO ES6/2015
  • 28. HOW TO USE WHAT’S NOT READY? • Polyfills • Transpilers • Babel.js • Tracuer • TypeScript MEAN STACK NYC | INTRO TO ES6/2015
  • 29. THANK YOU!!! Jamal O’Garro Software Engineer + Instructor MEAN STACK NYC | INTRO TO ES6/2015