(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
Ecmascript 2015 – best of new features()
1. ECMASCRIPT 2015
BEST OF NEW FEATURES().
by / atMiłosz Sobczak @miloszsobczak
Main example source code can be found at github.com/miloszsobczak/es6-rewrite.
7. CLASSES SUPER ACCESS
ECMASCRIPT 5 OLD WAY
//base class constructor
Developer.call(this, name, experience, languages);
//method access
Developer.prototype.method.call(this);
8. CLASSES SUPER ACCESS
ECMASCRIPT 2015 (6)
//base class constructor
super(name, experience, languages);
//method access
super.method()
9. CLASSES STATIC FUNCTION
ECMASCRIPT 5 OLD WAY
PixersDeveloper.prototype.default = function () {
return new PixersDeveloper('Mieszkos', 2, ['Whitespace'], -1000)
}
//usage
var Mieszkos = PixersDeveloper.default();
10. CLASSES STATIC FUNCTION
ECMASCRIPT 2015 (6)
static default () {
return new PixersDeveloper('Mieszkos', 2, ['Whitespace'], -1000);
}
//usage
var Mieszkos = PixersDeveloper.default();
11. CLASSES SETTER/GETTER
ECMASCRIPT 5 OLD WAY
Described in ecmascript 5.0 (not in 5.1).
PixersDeveloper.prototype.awesomeness = function (value) {
if (typeof value === 'number') {
this._awesomeness = parseInt(value, 10);
}
return this._awesomeness;
}
//setter usage
this.awesomeness(10);
//getter usage
var dev_awesomness = this.awesomeness();
12. CLASSES SETTER/GETTER
ECMASCRIPT 2015 (6)
set awesomeness (value = 0) {
if (typeof value === 'number') {
this._awesomeness = parseInt(value, 10);
}
}
get awesomeness () {
return this._awesomeness;
}
//setter usage
this.awesomeness = 10;
//getter usage
var dev_awesomness = this.awesomeness;
13. CLASSES EXTENDING
ECMASCRIPT 5 OLD WAY
BUILT-INS
function MyArray(/*arguments*/) {
var arr = [];
Array.prototype.push.apply(arr, arguments);
copyOwnPropertiesFrom(arr, MyArray.methods);
return arr;
}
var a = new MyArray();
a instanceof MyArray; //false
a instanceof Array; //true
14. CLASSES EXTENDING BUILT-INS
ECMASCRIPT 2015 (6)
class MyArray extends Array {
constructor(...args) {
super(args);
}
}
//ex below still gives an error, but it shuldn't
class myMath extends Math {}
21. BLOCKS && SCOPE VARIABLES:
CONSTS
ECMASCRIPT 5 OLD WAY
//simple and cross-browser, but still writable
var PI = 3.141593;
//or complicatated and not writable
Object.defineProperty(window, 'PI', {
value: 3.141593,
enumerable: true,
writable: false,
configurable: false
});
22. BLOCKS && SCOPE VARIABLES:
CONSTS
ECMASCRIPT 2015 (6)
const PI = 3.141593;
const PI = 1; //Uncaught TypeError: Identifier 'PI' has already been declare
var PI = 2; //3.141593
23. BLOCKS && SCOPE VARIABLES: LET
ECMASCRIPT 5 OLD WAY
var a = 2;
(function own_scope(){
var a = 3;
console.log( a ); // 3
})();
console.log( a ); // 2
24. BLOCKS && SCOPE VARIABLES: LET
ECMASCRIPT 2015 (6)
var a = 2;
{
let a = 3;
console.log( a ); // 3
}
console.log( a ); // 2
28. ARROW FUNCTIONS: CURRENT
OBJECT CONTEXT
ECMASCRIPT 5 OLD WAY
var self = this;
return (function anonymus(points) {
var points = points || 0;
//do something with points
return self.name() + ' is a Developer';
})(countPoints(this.languages().length, this.experience()));
29. ARROW FUNCTIONS: CURRENT
OBJECT CONTEXT
ECMASCRIPT 2015 (6)
return ((points = 0) => {
//do something with points
return this.name + ' is a Developer';
})(countPoints(this.languages.length, this.experience));