函数的扩展
2020-04-17 14:16:07 0 举报
AI智能生成
es6
作者其他创作
大纲/内容
函数参数的默认值
基本用法
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
将函数作为参数传入函数中,将生成新的作用域,可以指向外界的变量
上面这条,等我理解底层之后,回来更新
应用
不可省略参数
抛出一个函数错误
可省略参数
指定undefined
rest参数
基本用法
获取函数多余的参数,可用于替代arguments
function add(...values) 其中需要遍历value,可用of
add(2, 5, 3)
数组形式
rest参数之后,不许有其他参数
length属性,不包括rest参数和指定默认值后的参数
严格模式
基本用法
函数内部指定严格模式
'use strict'
name属性
基本用法
函数.name
箭头函数
基本用法
var f = v => v
注意点
参数有两个或以上需要()
this指向会指向上一层,指向需要进一步的研究
不可以作为构造函数
不可以使用arguments,那么问题来了是否可以使用rest呢
不可以使用yied
尾调用优化
基本用法
是一种重要概念
函数执行到最后一步就是调用另一个函数
概念
保留内层函数的调用帧
尾递归
函数参数的尾逗号
Function.prototype.toString
catch命令的参数省略
允许省略参数
0 条评论
下一页