Download - Upgrading the web
![Page 1: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/1.jpg)
Upgrading the weban Javascript language evolution
Renat GafarovRoman Gafurov
![Page 2: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/2.jpg)
Расскажи ей о наследовании в JavaScript
![Page 3: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/3.jpg)
JavaScript in modern world
Rich client application
More implementations design patterns (MVC, MVVM, MVP)
Server-side applications and two ways of progress by server javascript nodejs, io.js
Isomorphic code base (meteorjs, react, catberryjs)
Active community
Mobile applications (PhoneGap, Cardova, app.js, Marmalade)
Modern browser game dev
![Page 4: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/4.jpg)
Server-side JavaScript
V8 - C++ Virtual Machine
Non blocked i/o
Async
More modules
Fast development
![Page 5: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/5.jpg)
CALLBACK HELL
![Page 6: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/6.jpg)
Nodejs v 4.x
common code base nodejs and io.js
Child process
full support ES6
More stable
More fast
Nodejs Foundation
![Page 7: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/7.jpg)
It’s just JavaScriptno more `var`
everything is an expression
destructing assignment, array slicing
aliases (is, or, isnt, yes, unless, @, **, ...)
bound functions (arrow), splats…, default parameters
generators
classes, inheritance, ::, super(), static methods
string interpolation #{}, multiline strings
http://coffeescript.org/
![Page 8: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/8.jpg)
But not so fabulous
scoping is madness (http://goo.gl/KVNHLQ)
in some cases you still need put brackets
you can still shoot yourself in the foot
difficult to debug
there is no way back
good for ruby / python - ist’s
javascript is changing!
![Page 9: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/9.jpg)
![Page 10: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/10.jpg)
ECMAScript 6: extending CoffeeScriptblock scope
let, const - immutability
modules and import
named parameters
getters and setters
method properties, computed property names
typed arrays (Uint32Array, Uint8Array, Float32Array)
for-of
var is still with us
http://es6-features.org/
![Page 11: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/11.jpg)
ECMAScript 6: What about types?Symbol
Iterator
Set, Map
Promise
String (startsWith, endsWith, includes, repeat)
and others good features (http://goo.gl/1Rossi)
http://es6-features.org/
![Page 12: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/12.jpg)
https://goo.gl/WFBQpB
![Page 13: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/13.jpg)
ECMAScript 7: What’s next?
async
:: bind operator
class decorators, properties
array comprehensions
Object.values, Object.entries
https://babeljs.io
![Page 14: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/14.jpg)
![Page 15: Upgrading the web](https://reader035.vdocuments.us/reader035/viewer/2022070513/588590aa1a28ab84668b6e69/html5/thumbnails/15.jpg)