ES6中函数新增了哪些扩展

在这里插入图片描述

一、参数

ES6允许为函数的参数设置默认值

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

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

参数默认值解构赋值的默认值结合起来使用

function foo({x, y = 5} = {}) {
  console.log(x, y);
}
foo() // undefined 5
foo({x: 1}) // 1 5

二、属性

1、函数的length属性

length将返回没有指定默认值的参数个数
注意1:rest 参数也不会计入length属性

(function (a) {}).length    // 1
(function (a = 5) {}).length   // 0
(function (a, b, c = 5) {}).length   // 2

(function(...args) {}).length // 0

注意2:如果设置了默认值的参数不是尾参数,那么length属性也不再计入后面的参数了

(function (a = 0, b, c) {}).length // 0
(function (a, b = 1, c) {}).length // 1
2、name属性

返回该函数的函数名

var f = function () {};
// ES6
f.name // "f"

const bar = function baz() {};
bar.name // "baz"

三、箭头函数

使用“箭头”(=>)定义函数

//单个参数时
var f = v => v;
// 等同于
var f = function (v) {
  return v;
};

// 多个参数时
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

// 箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回
var calculate = (num1, num2) => { 
   let total = num1*num1 + num2*num2; 
   return total; 
}

箭头函数的注意点:

  • 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象
  • 本身无this对象,不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误
  • 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替
  • 不可以使用yield命令,因此箭头函数不能用作 Generator 函数

参考链接:https://mp.weixin.qq.com/s/EBEnKcKJqpoRJ1ewLI-uSw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值