SlideShare a Scribd company logo
ECMAScript 6 Features
(and some JavaScript background)
Conny Brunnkvist (@connyb), developer at HotelQuickly
Eck!?
ECMA is the European Computer Manufacturer's Association.
ECMAScript is formally governed by a technical committee
- ES/JS (used interchangeably) is NOT part of W3C
- Many implementations: Google V8, Mozilla SpiderMonkey, Microsoft Chakra,
WebKit JSCore, etc...
JS History
- A language is originally created by Brendan Eich
- Originally Mocha, became LiveScript, later renamed JavaScript
- Standards track initiated 1996 by Netscape
- Assigned specification name: ECMA-262
- Formed technical committee: TC-39
- Language documented as “ECMAScript” due to of trademark issues
JS History
JS History
Since the start, and up until today:
ECMAScript ===
JavaScript
...at least in speech ;-)
Dec 1999, ES3: what most of us traditionally expect when we see ”JavaScript”
Abandoned Jul 2008, ES3.1 & ES4: following a very long ongoing disagreement in the committee about
the scope of changes
Dec 2009, ES5: designed as an incremental update. Most notable feature: ”strict mode”;
Jun 2011, ES5.1: maintenance release covering adopted by the ISO
~2013, ES.next: ”harmonized” turned out too ambitious, features split into two groups: ”likely” and “less
prioritized”
Jun 2015, ES6: “ES-2015” draft finally finished, standard published as ”ECMAScript 6”.
(now, ES7: Still WIP!)
Dec 1999, ES3: what most of us traditionally expect when we see ”JavaScript”
Abandoned Jul 2008, ES3.1 & ES4: following a very long ongoing disagreement in the committee about
the scope of changes
Dec 2009, ES5: designed as an incremental update. Most notable feature: ”strict mode”;
Jun 2011, ES5.1: maintenance release covering adopted by the ISO
~2013, ES.next: ”harmonized” turned out too ambitious, features split into two groups: ”likely” and “less
prioritized”
Jun 2015, ES6: “ES-2015” draft finally finished, standard published as ”ECMAScript 6”.
(now, ES7: Still WIP!)
Dec 1995, Netscape Enterprise Server used server-side JavaScript
Dec 1996, Microsoft IIS enabled JScript server-side scripting
~~~
2008-2009, Initial start on a V8-powered server by Ryan Dahl (at Joyent)
2009, Project renamed ”Node” and later presented to the public
Dec 2014, io.js was forked ...
May 2015, io.js and Node.js both voted to merge again)
ECMAScript 6 vs ECMAScript Harmony
What is the difference here!?
- ES5 -> ES6 process took years
- It’s all flags in Google V8
Harmony in Node.js
Enabling “standard” harmony mode in node 0.6.x in 2011:
- node --harmony_typeof --harmony_block_scoping --harmony_proxies --harmony_weakmaps
In node 0.7.x:
- node --harmony
“Recent” changes to Node.js version numbers
- io.js @ 3.x
- Node.js @ 0.12.x
MERGED = Node.js release 4.0.0 a.k.a. “the new 1.0.0!”
All shipping features, which V8 considers stable, are turned on by default on Node.js and do NOT
require any kind of runtime flag.
Staged features, which are almost-completed features that are not considered stable by the V8 team,
require a runtime flag: --es_staging (or its synonym, --harmony).
In progress features can be activated individually by their respective harmony flag (e.g. --
harmony_destructuring), although this is highly discouraged unless for testing purposes.
(Complete answer: Check with node --v8-options !!!)
But what is in Node.js now?
● arrows
● classes
● enhanced object literals
● template strings
● destructuring
● default + rest + spread parameters
operators
● let + const
● iterators + for..of
● generators
● unicode literals + regexps
● modules
● module loaders
● map + set + weakmap + weakset
● proxies
● symbols
● subclassable built-ins
● promises
● math + number + string + array + object
APIs
● binary and octal literals
● reflect api
● tail calls
Features. Lots of them.
Further information about language featurs can be found at:
● ECMAScript 6 features:
https://github.com/lukehoban/es6features
http://es6-features.org/
● Current ECMAScript 6 features in Node.js:
https://nodejs.org/en/docs/es6/
Thank you for
watching,
lets hack the REPL!

More Related Content

What's hot

React native-meetup-talk
React native-meetup-talkReact native-meetup-talk
React native-meetup-talk
kiranabburi
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the Rings
Asheesh Mehdiratta
 
Progressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.io
Knoldus Inc.
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and Selenium
Dev9Com
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Webdriver.io
Webdriver.io Webdriver.io
Webdriver.io
LinkMe Srl
 
Google App Engine - Java Style
Google App Engine - Java StyleGoogle App Engine - Java Style
Google App Engine - Java Style
Peter Lind
 
A guide to getting started with WebdriverIO
A guide to getting started with WebdriverIOA guide to getting started with WebdriverIO
A guide to getting started with WebdriverIO
Nilenth Selvaraja
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
Aniruddha Chakrabarti
 
React Native
React NativeReact Native
React Native
Huqiu Liao
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
Steve Zhang
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot Framework
Somkiat Puisungnoen
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
Aleks Zinevych
 
Make sure your code works
Make sure your code worksMake sure your code works
Make sure your code works
Henrik Skupin
 
WebdriverIO: the Swiss Army Knife of testing
WebdriverIO: the Swiss Army Knife of testingWebdriverIO: the Swiss Army Knife of testing
WebdriverIO: the Swiss Army Knife of testing
Daniel Chivescu
 
HotelQuickly Product & Engineering
HotelQuickly Product & EngineeringHotelQuickly Product & Engineering
HotelQuickly Product & Engineering
Michal Juhas
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
OdessaJS Conf
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways
Mir Ali
 
Migration from AngularJS to Angular
Migration from AngularJS to AngularMigration from AngularJS to Angular
Migration from AngularJS to Angular
Aleks Zinevych
 
AngularJS and Protractor
AngularJS and ProtractorAngularJS and Protractor
AngularJS and Protractor
Filipe Falcão
 

What's hot (20)

React native-meetup-talk
React native-meetup-talkReact native-meetup-talk
React native-meetup-talk
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the Rings
 
Progressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.io
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and Selenium
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Webdriver.io
Webdriver.io Webdriver.io
Webdriver.io
 
Google App Engine - Java Style
Google App Engine - Java StyleGoogle App Engine - Java Style
Google App Engine - Java Style
 
A guide to getting started with WebdriverIO
A guide to getting started with WebdriverIOA guide to getting started with WebdriverIO
A guide to getting started with WebdriverIO
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 
React Native
React NativeReact Native
React Native
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot Framework
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
 
Make sure your code works
Make sure your code worksMake sure your code works
Make sure your code works
 
WebdriverIO: the Swiss Army Knife of testing
WebdriverIO: the Swiss Army Knife of testingWebdriverIO: the Swiss Army Knife of testing
WebdriverIO: the Swiss Army Knife of testing
 
HotelQuickly Product & Engineering
HotelQuickly Product & EngineeringHotelQuickly Product & Engineering
HotelQuickly Product & Engineering
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways
 
Migration from AngularJS to Angular
Migration from AngularJS to AngularMigration from AngularJS to Angular
Migration from AngularJS to Angular
 
AngularJS and Protractor
AngularJS and ProtractorAngularJS and Protractor
AngularJS and Protractor
 

Similar to A walkthrough of JavaScript ES6 features

Brief History of JavaScript
Brief History of JavaScriptBrief History of JavaScript
Brief History of JavaScript
Rifad Ainun Nazieb
 
The State of JavaScript
The State of JavaScriptThe State of JavaScript
The State of JavaScript
Domenic Denicola
 
ES6, A Look Into Your Future
ES6, A Look Into Your FutureES6, A Look Into Your Future
ES6, A Look Into Your Future
jasonsich
 
2017-web-development-readthedocs-io-en-latest.pdf
2017-web-development-readthedocs-io-en-latest.pdf2017-web-development-readthedocs-io-en-latest.pdf
2017-web-development-readthedocs-io-en-latest.pdf
SumanDhali4
 
Java Programming - 01 intro to java
Java Programming - 01 intro to javaJava Programming - 01 intro to java
Java Programming - 01 intro to java
Danairat Thanabodithammachari
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
Bob German
 
Introducing Java 7
Introducing Java 7Introducing Java 7
Introducing Java 7
Markus Eisele
 
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Eugene Yokota
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
Eugene Yokota
 
An Intro to Js & Node.js
An Intro to Js & Node.jsAn Intro to Js & Node.js
An Intro to Js & Node.js
Premchand Kumar
 
LuaEclipse_presentation_slides-en.ppt
LuaEclipse_presentation_slides-en.pptLuaEclipse_presentation_slides-en.ppt
LuaEclipse_presentation_slides-en.ppt
Azannol11
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
Alexis Moussine-Pouchkine
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
Jung Kim
 
Java begin so we win
Java begin so we winJava begin so we win
Java begin so we win
IT
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An Introduction
Nirvanic Labs
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
Alexandre Morgaut
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
Tom Croucher
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Web Development with Node.js
Web Development with Node.jsWeb Development with Node.js
Web Development with Node.js
Andrew Lively
 

Similar to A walkthrough of JavaScript ES6 features (20)

Brief History of JavaScript
Brief History of JavaScriptBrief History of JavaScript
Brief History of JavaScript
 
The State of JavaScript
The State of JavaScriptThe State of JavaScript
The State of JavaScript
 
ES6, A Look Into Your Future
ES6, A Look Into Your FutureES6, A Look Into Your Future
ES6, A Look Into Your Future
 
2017-web-development-readthedocs-io-en-latest.pdf
2017-web-development-readthedocs-io-en-latest.pdf2017-web-development-readthedocs-io-en-latest.pdf
2017-web-development-readthedocs-io-en-latest.pdf
 
Java Programming - 01 intro to java
Java Programming - 01 intro to javaJava Programming - 01 intro to java
Java Programming - 01 intro to java
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
Introducing Java 7
Introducing Java 7Introducing Java 7
Introducing Java 7
 
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
An Intro to Js & Node.js
An Intro to Js & Node.jsAn Intro to Js & Node.js
An Intro to Js & Node.js
 
LuaEclipse_presentation_slides-en.ppt
LuaEclipse_presentation_slides-en.pptLuaEclipse_presentation_slides-en.ppt
LuaEclipse_presentation_slides-en.ppt
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
 
Java begin so we win
Java begin so we winJava begin so we win
Java begin so we win
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An Introduction
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Web Development with Node.js
Web Development with Node.jsWeb Development with Node.js
Web Development with Node.js
 

More from Michal Juhas

Tech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet PreviewTech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet Preview
Michal Juhas
 
IT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet PreviewIT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet Preview
Michal Juhas
 
Three Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software DevelopersThree Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software Developers
Michal Juhas
 
What i wish i knew in my 20's
What i wish i knew in my 20'sWhat i wish i knew in my 20's
What i wish i knew in my 20's
Michal Juhas
 
Adaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The WorkforceAdaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The Workforce
Michal Juhas
 
Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018
Michal Juhas
 
Metasearch Outlook 2017
Metasearch Outlook 2017Metasearch Outlook 2017
Metasearch Outlook 2017
Michal Juhas
 
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Michal Juhas
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
Michal Juhas
 
Becoming Data Driven
Becoming Data DrivenBecoming Data Driven
Becoming Data Driven
Michal Juhas
 
Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)
Michal Juhas
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
Michal Juhas
 
Building Scalable Micro-services with Nodejs
Building Scalable Micro-services with NodejsBuilding Scalable Micro-services with Nodejs
Building Scalable Micro-services with Nodejs
Michal Juhas
 
Lessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems DevelopmentLessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems Development
Michal Juhas
 

More from Michal Juhas (14)

Tech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet PreviewTech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet Preview
 
IT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet PreviewIT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet Preview
 
Three Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software DevelopersThree Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software Developers
 
What i wish i knew in my 20's
What i wish i knew in my 20'sWhat i wish i knew in my 20's
What i wish i knew in my 20's
 
Adaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The WorkforceAdaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The Workforce
 
Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018
 
Metasearch Outlook 2017
Metasearch Outlook 2017Metasearch Outlook 2017
Metasearch Outlook 2017
 
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Becoming Data Driven
Becoming Data DrivenBecoming Data Driven
Becoming Data Driven
 
Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Building Scalable Micro-services with Nodejs
Building Scalable Micro-services with NodejsBuilding Scalable Micro-services with Nodejs
Building Scalable Micro-services with Nodejs
 
Lessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems DevelopmentLessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems Development
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 

A walkthrough of JavaScript ES6 features

  • 1. ECMAScript 6 Features (and some JavaScript background) Conny Brunnkvist (@connyb), developer at HotelQuickly
  • 2. Eck!? ECMA is the European Computer Manufacturer's Association. ECMAScript is formally governed by a technical committee - ES/JS (used interchangeably) is NOT part of W3C - Many implementations: Google V8, Mozilla SpiderMonkey, Microsoft Chakra, WebKit JSCore, etc...
  • 3. JS History - A language is originally created by Brendan Eich - Originally Mocha, became LiveScript, later renamed JavaScript - Standards track initiated 1996 by Netscape
  • 4. - Assigned specification name: ECMA-262 - Formed technical committee: TC-39 - Language documented as “ECMAScript” due to of trademark issues JS History
  • 5. JS History Since the start, and up until today: ECMAScript === JavaScript ...at least in speech ;-)
  • 6. Dec 1999, ES3: what most of us traditionally expect when we see ”JavaScript” Abandoned Jul 2008, ES3.1 & ES4: following a very long ongoing disagreement in the committee about the scope of changes Dec 2009, ES5: designed as an incremental update. Most notable feature: ”strict mode”; Jun 2011, ES5.1: maintenance release covering adopted by the ISO ~2013, ES.next: ”harmonized” turned out too ambitious, features split into two groups: ”likely” and “less prioritized” Jun 2015, ES6: “ES-2015” draft finally finished, standard published as ”ECMAScript 6”. (now, ES7: Still WIP!)
  • 7. Dec 1999, ES3: what most of us traditionally expect when we see ”JavaScript” Abandoned Jul 2008, ES3.1 & ES4: following a very long ongoing disagreement in the committee about the scope of changes Dec 2009, ES5: designed as an incremental update. Most notable feature: ”strict mode”; Jun 2011, ES5.1: maintenance release covering adopted by the ISO ~2013, ES.next: ”harmonized” turned out too ambitious, features split into two groups: ”likely” and “less prioritized” Jun 2015, ES6: “ES-2015” draft finally finished, standard published as ”ECMAScript 6”. (now, ES7: Still WIP!) Dec 1995, Netscape Enterprise Server used server-side JavaScript Dec 1996, Microsoft IIS enabled JScript server-side scripting ~~~ 2008-2009, Initial start on a V8-powered server by Ryan Dahl (at Joyent) 2009, Project renamed ”Node” and later presented to the public Dec 2014, io.js was forked ... May 2015, io.js and Node.js both voted to merge again)
  • 8. ECMAScript 6 vs ECMAScript Harmony What is the difference here!? - ES5 -> ES6 process took years - It’s all flags in Google V8
  • 9. Harmony in Node.js Enabling “standard” harmony mode in node 0.6.x in 2011: - node --harmony_typeof --harmony_block_scoping --harmony_proxies --harmony_weakmaps In node 0.7.x: - node --harmony
  • 10. “Recent” changes to Node.js version numbers - io.js @ 3.x - Node.js @ 0.12.x MERGED = Node.js release 4.0.0 a.k.a. “the new 1.0.0!”
  • 11. All shipping features, which V8 considers stable, are turned on by default on Node.js and do NOT require any kind of runtime flag. Staged features, which are almost-completed features that are not considered stable by the V8 team, require a runtime flag: --es_staging (or its synonym, --harmony). In progress features can be activated individually by their respective harmony flag (e.g. -- harmony_destructuring), although this is highly discouraged unless for testing purposes. (Complete answer: Check with node --v8-options !!!) But what is in Node.js now?
  • 12. ● arrows ● classes ● enhanced object literals ● template strings ● destructuring ● default + rest + spread parameters operators ● let + const ● iterators + for..of ● generators ● unicode literals + regexps ● modules ● module loaders ● map + set + weakmap + weakset ● proxies ● symbols ● subclassable built-ins ● promises ● math + number + string + array + object APIs ● binary and octal literals ● reflect api ● tail calls Features. Lots of them.
  • 13. Further information about language featurs can be found at: ● ECMAScript 6 features: https://github.com/lukehoban/es6features http://es6-features.org/ ● Current ECMAScript 6 features in Node.js: https://nodejs.org/en/docs/es6/ Thank you for watching, lets hack the REPL!

Editor's Notes

  1. I work on the node team former system admin, former process coach, former technical trainer, former mobile app developer, now just member of the node team at HQ
  2. an international standards body (think W3C)
  3. Brendan Eich at Mozilla renamed JavaScript because Java was cool and “Web!” at that time During its heyday in 1996 Netscape presented JavaScript to Ecma International to start tracking it as a standard.
  4. The official specification became know as ECMA-262 and a technical committee (TC-39) was formed. In their documents the language was called ”ECMAScript” for the simple reason that Sun Microsystems (now Oracle) had trademarked the name JavaScript already; at the same time and for the same reason, Microsoft chose to call their implementation JScript.
  5. For all practical reasons, the names have become interchangeable, but…
  6. ES3.1 ES4 dispute kicked off the effort of ”harmonizing features” for the ES-next draft ES5 larger in scope than ES3.1 but smaller than what was in ES4 ES5.1 technical and editorial corrections - needed for ES.next even the ”harmonized” features became too ambitious. Harmony was split into two groups: the ones ”quite likely” to be part of an updated ES5 standard, and then the more experimental or less prioritized features from the original Harmony spec. ES7 let’s pretend we never heard of it
  7. 1996 as part of NT4 Service Pack 2 u remember? :) a server named “server” presented as Node.js at to the public at a conference project grew iojs was forked partly as a means of making use of harmony mode features by default as well as upgrading V8 plus a bunch of other additions that at the time were marked ”unstable” in what was then node 0.11.x) node (under new governance structure) and io.js projects were voted to merge codebases again closing the circle
  8. so what IS the difference between ECMAScript 6 and ECMAScript Harmony? it’s all about which flags are turned on in the underlying Because the timeline from ES5 to ES6 was almost four years, many proposals were taken into consideration and many were starting to become experimentally incorporated into e.g. V8 and SpiderMonkey. In order to start aligning which of the features of the draft (”ES-next”; the WIP) that developers could expect to be enabled in any implementation, a step measure was decided on in the form of ”harmony” mode.
  9. Originally a set of build- and runtime-flags that enabled various features already in the underlying V8. Where ES-Harmony stood in 2011, node 0.6.x ”only” required `node --harmony_typeof --harmony_block_scoping --harmony_proxies --harmony_weakmaps`. At the release of node 0.7.x the single ”node --harmony file.js” flag was introduced.
  10. io.js was at v3.x and Node.js at v0.12.x -> merged into the 4.0.0 release. Conceptually considered ”the new 1.0.0” of the new merged io.js/Node.js codebases.
  11. Bold ones = in my version of node, without flags!! Which ones will you use in your team on your project?!