Loading

ES6中关于函数的拓展

参数默认值

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。

function log(x, y = 'World') {
  console.log(x, y);
}

log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello


也可以使用表达式来计算

let x = 99;
function foo(p = x + 1) {
  console.log(p);
}

foo() // 100

x = 100;
foo() // 101

数组和对象的写法

// 数组的写法
function add([x, y]){
  return x + y;
}
// 对象的写法
function move({x = 0, y = 0} = {}) {// 等号右边的{}可以省略 表示必须传入一个对象 否则报错
  return [x, y];
}

rest参数

ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

unction add(...values) {
  let sum = 0;

  for (var val of values) {
    sum += val;
  }

  return sum;
}

add(2, 5, 3) // 10

rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。

箭头函数

注意点

  1. 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

  2. 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

  3. 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

  4. 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

posted @ 2021-01-19 11:11  不吃苦瓜^  阅读(77)  评论(0编辑  收藏  举报