【前端知识之JS】ES6中函数新增了哪些扩展

本文介绍了ES6中函数的扩展,包括参数默认值、length和name属性、作用域、严格模式以及箭头函数的使用。重点讲解了参数默认值的位置、length属性的计算规则、箭头函数的this指向及不能作为构造函数等特性。
摘要由CSDN通过智能技术生成

前言

本系列主要整理前端面试中需要掌握的知识点。本节介绍ES6中函数新增的扩展。


一、参数

  • 允许为函数的参数设置默认值
  • 函数的形参是默认声明的,不能使用let或const再次声明
  • 参数默认值可以与解构赋值的默认值结合起来使用
  • 参数默认值应该是函数的尾参数,如果不是非尾部的参数设置默认值,实际上这个参数是没法省略的

二、属性

1、length属性

  • length将返回没有指定默认值的参数个数;
  • rest 参数也不会计入length属性;
  • 如果设置了默认值的参数不是尾参数,那么length属性也不再计入后面的参数了

2、name属性

  • name属性返回该函数的函数名;
  • 如果将一个具名函数赋值给一个变量,则 name属性都返回这个具名函数原本的名字;
  • Function构造函数返回的函数实例,name属性的值为anonymous;
  • bind返回的函数,name属性值会加上bound前缀

三、作用域

一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的。

let x = 1;

function f(y = x) {
    
  // 等同于 let y = x  
  let x = 2; 
  console.log(y);
}

f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值