函数参数的默认值
基本用法
function log(x, y = x+1)
y是默认声明,不可再声明
不能有同名参数
y的值并不是默认传值,而是每一次都会加一
与结构赋值默认值结合使用
function m1({x = 0, y = 0} = {})
{x=0,y=0}是对象结构赋值,{}空对象是函数参数默认值
位置
函数的尾参数
如有参数没有默认值,将不会省略他,返回undefined
length属性
指定默认值之后,length将失去
作用域
函数参数,设置默认值之后,初始化时将直接生成作用域
function f(x, y = x)
f(2),在单独作用域中y=x中的x将指向前一个x
将函数作为参数传入函数中,将生成新的作用域,可以指向外界的变量
上面这条,等我理解底层之后,回来更新
rest参数
基本用法
获取函数多余的参数,可用于替代arguments
function add(...values) 其中需要遍历value,可用of
add(2, 5, 3)
数组形式
rest参数之后,不许有其他参数
length属性,不包括rest参数和指定默认值后的参数
箭头函数
注意点
参数有两个或以上需要()
this指向会指向上一层,指向需要进一步的研究
不可以作为构造函数
不可以使用arguments,那么问题来了是否可以使用rest呢
不可以使用yied