函数的扩展
-
参数默认值
function func1(x, y = 123) { }
/*******************************/
var x = 2;
function func2(x, f = function() { x = 3; }) {
var x = 10;
f();
return x;
}
-
rest参数
rest参数搭配的变量是一个数组, 该变量将多余的参数放入数组中。
function push(array, ...items) {
items.forEach(function(item) {
array.push(item);
console.log(item);
});
}
var a = [];
push(a, 1, 2, 3)
-
扩展运算符
扩展运算符( spread) 是三个点( ...) 。 它好比rest参数的逆运算, 将一个数组转为用逗号分隔的参数序列。
function add(x, y) {
return x + y;
}
var numbers = [4, 38];
add(...numbers) // 42
/*****************************************/
// ES5的写法
Math.max.apply(null, [14, 3, 77])
// ES6的写法
Math.max(...[14, 3, 77])
// 等同于
Math.max(14, 3, 77);
/***************************/
list = [1, 2, 3, 4, 5];
[a, ...rest] = list;
//a = 1, rest = [2, 3, 4, 5]
/***************************/
[...'hello']
// [ "h", "e", "l", "l", "o" ]
/*************************************************/
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
let arr = [...map.keys()]; // [1, 2, 3]