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");