cs 498rk spring 2019 - github pages › sp19 › slides › es6_06.pdf · javascript implements...

25
SPRING 2019 CS 498RK ES6 new features for JavaScript

Upload: others

Post on 30-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

SPRING 2019CS 498RK

ES6

new features for JavaScript

Page 2: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

WHAT IS ES6?

ES (ECMAScript) is a scripting language standard.

JavaScript implements ECMAScript.

ES6 means the 6th Edition of ECMAScript.

Page 3: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

Timeline

2019

1998: ES2 2000: ES4 (Abandoned)

1997: ES1 1999: ES3

Started in 1997, yearly updates up to 2000

Page 4: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

Timeline

2019

1998: ES2 2000: ES4 (Abandoned)

1997: ES1 1999: ES3 2009: ES5

10 years later, ES5. Not much new stuff.

Page 5: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

Timeline

2019

1998: ES2 2000: ES4 (Abandoned)

2015: ES6

1997: ES1 1999: ES3 2009: ES5

6 years later, ES6! Plethora of new features!

Page 6: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

Timeline

2019

1998: ES2 2000: ES4 (Abandoned)

2015: ES6 2017: ES8

1997: ES1 1999: ES3 2009: ES5 2016: ES7 2018: ES9

Yearly updates since ES6.

Page 7: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

New, Exciting Features Every Year!

Page 8: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

ES6 FEATURESLet & Const

Arrow Functions

Default Parameters

Template Literals

Destructuring

Rest & Spread

New Array Methods

Classes

Modules

and more!

Page 9: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

LET

before after

Page 10: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

CONST

before after

Page 11: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

ARROW FUNCTIONS

before

after

Page 12: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

ARROW FUNCTIONSbefore

after

Page 13: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

DEFAULT PARAMETERS

before after

Page 14: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

TEMPLATE LITERALS

before

after

Page 15: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

TEMPLATE LITERALS

before after

Page 16: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

DESTRUCTURING

Page 17: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

REST

accessing the "rest" of the arguments

Page 18: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

SPREAD

before after

Page 19: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

SPREAD

copying an array

Page 20: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

NEW ARRAY METHODS

and more…

Page 21: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

CLASSES

before after

Page 22: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

CLASSES

before

after

Page 23: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

MODULESbefore after

Page 24: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

MODULES

before after

Page 25: CS 498RK SPRING 2019 - GitHub Pages › sp19 › slides › es6_06.pdf · JavaScript implements ECMAScript. ES6 means the 6th Edition of ECMAScript. Timeline 2019 1998: ES2 2000:

RESOURCES

http://exploringjs.com/es6/

https://github.com/lukehoban/es6features

http://es6-features.org