前言
本系列主要整理前端面试中需要掌握的知识点。本节介绍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
本文介绍了ES6中函数的扩展,包括参数默认值、length和name属性、作用域、严格模式以及箭头函数的使用。重点讲解了参数默认值的位置、length属性的计算规则、箭头函数的this指向及不能作为构造函数等特性。
最低0.47元/天 解锁文章
206

被折叠的 条评论
为什么被折叠?



