SlideShare a Scribd company logo
AnOverviewofJavaScriptin 2015
(ECMAScript6)
Language
Features
 This sixth edition of JavaScript introduces a lot of new language
syntax features, it might even be the most feature packed revision
to date in terms of language additions, and that is with some of
the features scheduled, like comprehensions and rest and spread
properties being delayed to the next edition.
 These features are also backwards compatible, in the sense that
they are mostly syntactic sugar and can be desugared to older
versions of the language, meaning we can use them right now
with a source to source compiler (otherwise known as a transpiler).
Arrow
Functions(1)
 Arrow functions are a function shorthand using the => syntax.
 However, unlike normal functions however, arrows share the same
lexical this as their surrounding code.
Arrow
Functions(2)
expression
Binary and
Octal
Literals(1)
 Binary and Octal literals are new forms of numeric literals added
for binary and octal numbers, denoted by b and o respectively.
Binary and
Octal
Literals(2)
BlockScoping
 Block scoping are new forms of declaration for defining variables
scoped to a single block, as opposed to variables declared with var
which have a function-level scope.
 Let
 Const
BlockScoping
-Let(1)
 We can use let in-place of var to define block-local variables
without having to worry about them clashing with variables
defined elsewhere within the same function body.
BlockScoping
-Let(2)
BlockScoping
-Const(1)
 const follows the same rules as let, except that the value is
immutable so we can only assign to it once.
BlockScoping
-Const(2)
Classes(1)
 Classes are a concise declarative syntax for writing object oriented
prototype patterns with a classical classes approach, the class
syntax has support for inheritance, super calls, instance and static
properties and constructors.
Classes(2)
Classes(3)
Default
Parameter
Values(1)
 Default parameter values allows us to initialize parameters when
they were not explicitly provided.Where-as previously we would
often check for undefined and assign default values.
Default
Parameter
Values(2)
Destructuring
Assignments
(1)
 Destructuring assignment allows us to assign parts of an object to
several variables at once.
Destructuring
Assignments
(2)
Iterators(1)
 Iterators allow iteration over arbitrary objects, while this by itself
is not strictly a language feature, rather a protocol/pattern that is
implemented by the core library, it does tie into other language
features such as generators and for-for which work with this
pattern.
 The iterator protocol takes the following form, any object can be
an iterator as long as it defines a next() method.
 Any object can be iterable as long as it defines an iterator method,
the named of the method is obtained through Symbol.iterator,
often denoted with @@iterator.
Iterators(2)
Iterators-
ForOf(1)
 The for-of loop allows you to conveniently loop over iterable
objects.
Iterators-
ForOf(2)
Generators(1)
 Generators make it easy to create iterators. Instead of tracking
state yourself and implementing iterator, you just use yield (or
yield* to yield each element in an iterator).
Generators(2)
Method
Definition
Shorthand(1)
 Method Definition Shorthand is a shorthand syntax for method
definitions in object initializers, whereas before we would
explicitly state the property name.
Method
Definition
Shorthand(2)
Property
Value
Shorthand(1)
 PropertyValue Shorthand is a shorthand syntax object initializers
whose property keys are initialized by variables of the same name,
whereas before we would have to repeat the property key and
variable name.
Property
Value
Shorthand(2)
Rest
Parameters(1)
 Rest parameters provides a cleaner way of dealing with variadic
functions, that is functions that take a arbitrary number of
parameters.
Rest
Parameters(2)
Spread
Operator(1)
 The spread operator allows an expression to be expanded in
places where multiple arguments or multiple elements are
expected.
Spread
Operator(2)
Template
Strings(1)
 Template strings are a new form of string literals using backticks,
they are multiline and support interpolation through the ${} syntax.
 Template strings can also be in the form of tagged template
strings, allowing us to prefix the literal with a tag.Tags are
basically filtering functions that can perform substitutions and
string manipulation.
Template
Strings(2)
Reference
 http://caspervonb.com/javascript/an-overview-of-javascript-in-
2015-ecmascript-6/
 https://google.github.io/traceur-compiler/demo/repl.html
Ad

Recommended

Anton Kasyanov, Introduction to Python, Lecture2
Anton Kasyanov, Introduction to Python, Lecture2
Anton Kasyanov
 
Mobile Software Engineering Crash Course - C02 Java Primer
Mobile Software Engineering Crash Course - C02 Java Primer
Mohammad Shaker
 
Python and You Series
Python and You Series
Karthik Prakash
 
Kotlin- Basic to Advance
Kotlin- Basic to Advance
Coder Tech
 
Java 8 features
Java 8 features
NexThoughts Technologies
 
Java String
Java String
SATYAM SHRIVASTAV
 
Project Lambda - Closures after all?
Project Lambda - Closures after all?
Andreas Enbohm
 
Polymorphism 140527082302-phpapp01
Polymorphism 140527082302-phpapp01
Engr.Tazeen Ahmed
 
Javascript Tip and Triks
Javascript Tip and Triks
Eb Styles
 
Java String
Java String
Java2Blog
 
Java For Automation
Java For Automation
Abhijeet Dubey
 
JVM and OOPS Introduction
JVM and OOPS Introduction
SATYAM SHRIVASTAV
 
Double pointer (pointer to pointer)
Double pointer (pointer to pointer)
sangrampatil81
 
Advance python
Advance python
pulkit agrawal
 
Clean Code�Chapter 3. (1)
Clean Code�Chapter 3. (1)
Felix Chen
 
Constructor in java
Constructor in java
SIVASHANKARIRAJAN
 
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Edureka!
 
16 virtual function
16 virtual function
Docent Education
 
Java strings
Java strings
Mohammed Sikander
 
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
Eelco Visser
 
String, string builder, string buffer
String, string builder, string buffer
SSN College of Engineering, Kalavakkam
 
Erlang session2
Erlang session2
mohamedsamyali
 
What's New In Python 2.4
What's New In Python 2.4
Richard Jones
 
Java moderno java para Jedis episodio I
Java moderno java para Jedis episodio I
Roan Brasil Monteiro
 
Object oriented concepts & programming (2620003)
Object oriented concepts & programming (2620003)
nirajmandaliya
 
Chapter 7 String
Chapter 7 String
OUM SAOKOSAL
 
Presentation of loops
Presentation of loops
Ahmad Kazmi
 
Best practices in Java
Best practices in Java
Mudit Gupta
 
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JavaScript in 2016
JavaScript in 2016
Codemotion
 

More Related Content

What's hot (20)

Javascript Tip and Triks
Javascript Tip and Triks
Eb Styles
 
Java String
Java String
Java2Blog
 
Java For Automation
Java For Automation
Abhijeet Dubey
 
JVM and OOPS Introduction
JVM and OOPS Introduction
SATYAM SHRIVASTAV
 
Double pointer (pointer to pointer)
Double pointer (pointer to pointer)
sangrampatil81
 
Advance python
Advance python
pulkit agrawal
 
Clean Code�Chapter 3. (1)
Clean Code�Chapter 3. (1)
Felix Chen
 
Constructor in java
Constructor in java
SIVASHANKARIRAJAN
 
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Edureka!
 
16 virtual function
16 virtual function
Docent Education
 
Java strings
Java strings
Mohammed Sikander
 
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
Eelco Visser
 
String, string builder, string buffer
String, string builder, string buffer
SSN College of Engineering, Kalavakkam
 
Erlang session2
Erlang session2
mohamedsamyali
 
What's New In Python 2.4
What's New In Python 2.4
Richard Jones
 
Java moderno java para Jedis episodio I
Java moderno java para Jedis episodio I
Roan Brasil Monteiro
 
Object oriented concepts & programming (2620003)
Object oriented concepts & programming (2620003)
nirajmandaliya
 
Chapter 7 String
Chapter 7 String
OUM SAOKOSAL
 
Presentation of loops
Presentation of loops
Ahmad Kazmi
 
Best practices in Java
Best practices in Java
Mudit Gupta
 
Javascript Tip and Triks
Javascript Tip and Triks
Eb Styles
 
Double pointer (pointer to pointer)
Double pointer (pointer to pointer)
sangrampatil81
 
Clean Code�Chapter 3. (1)
Clean Code�Chapter 3. (1)
Felix Chen
 
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Edureka!
 
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
Eelco Visser
 
What's New In Python 2.4
What's New In Python 2.4
Richard Jones
 
Java moderno java para Jedis episodio I
Java moderno java para Jedis episodio I
Roan Brasil Monteiro
 
Object oriented concepts & programming (2620003)
Object oriented concepts & programming (2620003)
nirajmandaliya
 
Presentation of loops
Presentation of loops
Ahmad Kazmi
 
Best practices in Java
Best practices in Java
Mudit Gupta
 

Similar to An overview of java script in 2015 (ecma script 6) (20)

Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JavaScript in 2016
JavaScript in 2016
Codemotion
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)
Eduard Tomàs
 
ES6 - JavaCro 2016
ES6 - JavaCro 2016
Nenad Pecanac
 
ECMAScript 2015: my favourite parts
ECMAScript 2015: my favourite parts
André Duarte
 
The ES Library for JavaScript Developers
The ES Library for JavaScript Developers
Ganesh Bhosale
 
Getting started with ES6
Getting started with ES6
Nitay Neeman
 
Introduction to es6
Introduction to es6
NexThoughts Technologies
 
ES6 Overview
ES6 Overview
Bruno Scopelliti
 
ECMAScript 6 Review
ECMAScript 6 Review
Sperasoft
 
Intro to ES6 / ES2015
Intro to ES6 / ES2015
Jamal Sinclair O'Garro
 
Exciting JavaScript - Part I
Exciting JavaScript - Part I
Eugene Lazutkin
 
JavaScript - new features in ECMAScript 6
JavaScript - new features in ECMAScript 6
Solution4Future
 
es6
es6
Imran shaikh
 
ES6 PPT FOR 2016
ES6 PPT FOR 2016
Manoj Kumar
 
ES6 and BEYOND
ES6 and BEYOND
Brian Patterson
 
ECMAScript 6
ECMAScript 6
偉格 高
 
Internal workshop es6_2015
Internal workshop es6_2015
Miguel Ruiz Rodriguez
 
Fitc whats new in es6 for web devs
Fitc whats new in es6 for web devs
FITC
 
Es6 day1
Es6 day1
Abhishek Sharma
 
Ad

More from LearningTech (20)

vim
vim
LearningTech
 
PostCss
PostCss
LearningTech
 
ReactJs
ReactJs
LearningTech
 
Docker
Docker
LearningTech
 
Semantic ui
Semantic ui
LearningTech
 
node.js errors
node.js errors
LearningTech
 
Process control nodejs
Process control nodejs
LearningTech
 
Expression tree
Expression tree
LearningTech
 
SQL 效能調校
SQL 效能調校
LearningTech
 
flexbox report
flexbox report
LearningTech
 
Vic weekly learning_20160504
Vic weekly learning_20160504
LearningTech
 
Reflection & activator
Reflection & activator
LearningTech
 
Peggy markdown
Peggy markdown
LearningTech
 
Node child process
Node child process
LearningTech
 
20160415ken.lee
20160415ken.lee
LearningTech
 
Peggy elasticsearch應用
Peggy elasticsearch應用
LearningTech
 
Expression tree
Expression tree
LearningTech
 
Vic weekly learning_20160325
Vic weekly learning_20160325
LearningTech
 
D3js learning tips
D3js learning tips
LearningTech
 
git command
git command
LearningTech
 
Ad

Recently uploaded (20)

FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
High Availability On-Premises FME Flow.pdf
High Availability On-Premises FME Flow.pdf
Safe Software
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
Precisely
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
High Availability On-Premises FME Flow.pdf
High Availability On-Premises FME Flow.pdf
Safe Software
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
Precisely
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 

An overview of java script in 2015 (ecma script 6)