ES6 new syntax of Rest and Spread Operators

时间:2023-01-01 05:01:56

Rest and Spread Operators.md

Why we need rest and spread operators?

var showCollections = function(id, ...collection){
console.log(collection instanceof Array);
};
showCollections(42, 'movies', 'music');

ES6 new syntax of Rest and Spread Operators

instanceof

The instanceof operator tests whether the prototype property of a constructor appears anywhere in the prototype chain of an object.

a demo about the propety of the instance.

function C(){}
function D() {} var o = new C();
o instanceof C; o instanceof D; o instanceof Object; C.prototype instanceof Object;
C.prototype = {};
var o2 = new C(); o2 instanceof C;
o instanceof C; D.prototype = new C();
var o3 = new D(); o3 instanceof D;
o3 instanceof C;

ES6 new syntax of Rest and Spread Operators

var showCollections = function(id, ...collection){
console.log( arguments.length);
}
showCollections (123, 'movies', 'music');

ES6 new syntax of Rest and Spread Operators

var showCollections = function(id, ...collection) {
console.log(collection);
};
showCollections(42, 'movies', 'music' );

ES6 new syntax of Rest and Spread Operators

var showCollections = function(id, ...collection){};
console.log(showCollections.length);

ES6 new syntax of Rest and Spread Operators

The length property ignores the Rest Parameter.

var showCollections = function(id, ...collection){
console.log(arguments.length);
}; showCollections(123, 'movie', 'music');

ES6 new syntax of Rest and Spread Operators

var getFirst = new Function("...args"," return args[0]");
console.log(getFirst(1,2));

ES6 new syntax of Rest and Spread Operators

The Spread Operator

Spread Operator spreads out an array and passed the values into the specified function.

It used into an arrry

let values = [300, 400, 500];
let newSet = [100, ...values, 500]; console.log(newSet);

ES6 new syntax of Rest and Spread Operators

In ES6,you have the ability to pass a function a dynamic number of parameters very easily.If you want to do this in ES5,you would have to put all the values in a data container data type like an array.

let numbers = [-25, 100, 42, -1000 ];
console.log(Math.max(...numbers,900));

ES6 new syntax of Rest and Spread Operators

function printInput(...input){
console.log(input);
} let input = [,,];
printInput(...input);

ES6 new syntax of Rest and Spread Operators