48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
console.log("Rest and Spread Operator");
|
|
|
|
console.log("Rest Operator");
|
|
// Rest Operator
|
|
|
|
function sumAll(...args){
|
|
let sum = 0;
|
|
for(let arg of args){
|
|
sum += arg;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
console.log(sumAll(1,2,3,4,5));
|
|
|
|
function showName(firstName, lastName, ...titles) {
|
|
console.log( firstName + ' ' + lastName ); // Julius Caesar
|
|
|
|
// 剩余的参数被放入 titles 数组中
|
|
// i.e. titles = ["Consul", "Imperator"]
|
|
console.log( titles[0] ); // Consul
|
|
console.log( titles[1] ); // Imperator
|
|
console.log( titles.length ); // 2
|
|
}
|
|
|
|
showName("Julius", "Caesar", "Consul", "Imperator");
|
|
|
|
console.log("Attention: Rest parameters should be at the end");
|
|
console.log("Attention: Only one rest parameter is allowed");
|
|
consoel.log("Attention: Arrow functions do not have 'arguments' object");
|
|
|
|
console.log("Spread Operator");
|
|
// Spread Operator
|
|
let arr = [3, 5, 1];
|
|
console.log(Math.max(arr)); // NaN
|
|
console.log(Math.max(...arr)); // 5
|
|
let arr1 = [1, -2, 3, 4];
|
|
let arr2 = [8, 3, -8, 1];
|
|
console.log(Math.max(...arr1, ...arr2)); // 8
|
|
let merged = [0, ...arr1, 2, ...arr2];
|
|
console.log(merged);
|
|
|
|
console.log("Attention: Spread operator can be used to merge arrays");
|
|
console.log("Attention: Spread operator can be used to convert string to array");
|
|
console.log("Attention: Spread operator can be used to convert arguments to array");
|
|
|
|
|