es6-函数默认参数-rest参数-扩展运算符
函数参数的默认值
- es6允许给函数参数赋初始值
- 形参初始值(一般默认值的参数位置要靠后)
function add(a, b, c = 10) { // 设置了初始值为10 return a + b + c } let result = add(1, 2); console.log(result); // 结果是13
- 可以与解构赋值结合(函数解构)
function connect({ host = '127.0.0.1', username, password, port // 形参是一个对象 }) { console.log(host); console.log(username); console.log(password); console.log(port); } // 调用 函数 传入实参 connect({ // 这是解构后的参数 username: 'root', password: 'root', port: 3306 }) // 这里host是默认值,就是 127.0.0.1
rest参数
es6 引入了 rest参数 用于获取函数的实参,用来代替 arguments
es5 获取实参的方法
function date() { console.log(arguments); } date('lmk', 'kml') // 返回的是一个对象
rest参数获取实参
function date1(...args) { console.log(args); // filter some 这些方法都可以使用 } date1('lmk', 'kml') // 返回的是一个数组
rest 参数必须放到参数最后
function fn1(a, b, ...args) { console.log(a); console.log(b); console.log(args); } fn1(1, 2, 3, 4, 5, 6) // a = 1 b = 2 args = [3,4,5,6] // 和py的 **a一样
扩展运算符
es6中 “…” 扩展运算符能将数组转换为逗号分隔的参数序列
声明数组
// 声明数组 const lmk = [1, 2, 3, 4];
声明函数
function kkk() { console.log(arguments); } kkk(...lmk) // 不加 ... 就是返回一个对象,里面是一个序列,加 ... 返回的是 4个参数 // 扩展运算符 和 rest参数很像 // 但是扩展运算符是在实参传递的时候添加 // 就是将数组转换成参数序列(将数组内的参数提取成一个一个的)
扩展运算符的应用
- 数组的合并
const sz = ['李明凯', '凯明李'] const zs = ['kkk', 'kjl'] // 一开始可以这样做 const kml = sz.concat(zs) console.log(kml); // 用扩展运算符合并数组 const lmk = [...sz, ...zs] console.log(lmk);
- 数组的克隆
const san = ['1', '2', '3'] const er = [...san] // 有复杂数据类型的话是浅拷贝 console.log(er);
- 将伪数组转为真正的数组
// 利用3个div来把这3个div的对象转换成数组 const divs = document.querySelectorAll('div'); console.log(divs); // 是一个对象 // 将对象转换为数组 const divArr = [...divs] console.log(divArr); // 已经转为数组了
本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!