当前位置: 首页 > news >正文

【前端打怪升级日志之ES6篇】玩转函数

学习资料

阮一峰老师《ECMAScript 6 入门》— 函数的扩展

总结应用

1. 函数参数默认值与对象解构赋值默认值的结合使用
// 场景:方法调用时传参希望只传第二个参数
// 方案1:
function foo({x=1,y=2}){console.log(x,y);
}
foo({}) //1 2
foo({x:2}) //2 2
foo({y:3}) //1 3
//注意:只有当函数foo的参数是一个对象时,变量x和y才会通过解构赋值生成
// 方案2:
function foo({x, y=5} = {}){console.log(x,y);
}
foo() //undefined 5//case
function fetch(url, { body = '', method = 'GET', headers = {} } = {}) {console.log(method);
}fetch('http://example.com') // GET
2. 箭头函数
// 与rest参数结合
const nums = (...nums) => nums;
nums(1,2,3,4,5); //[1, 2, 3, 4, 5]// 使用注意点
// ① 箭头函数没有自己的this对象,普通函数内部的this指向函数运行时所在的对象,箭头函数的this总是指向函数定义生效时所在的对象
function foo() {setTimeout(() => {console.log('id:', this.id);}, 100);
}
var id = 21;
foo.call({ id: 42 });// id: 42
// ② 不可以当作构造函数,也就是说,不可以对箭头函数使用new命令,否则会抛出一个错误
// ③ 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替
// ④ 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
http://www.lryc.cn/news/177705.html

相关文章:

  • 网址静态码手机制作教程,附图文详解!
  • 服务器性能测试监控平台export+prometheus(普罗米修斯)+grafana搭建
  • 【24种设计模式】责任链模式
  • C#异步委托的三种实现 BeginInvoke / EndInvoke / IsCompleted
  • 在HTTP请求中安全传输base64编码的字符串
  • 05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别
  • LeetCode算法题---第3天
  • 欧洲FBA专线海运与陆运的差别
  • UDS诊断
  • 计算材料学学习记录1
  • PHP8中的构造方法和析构方法-PHP8知识详解
  • 【GPU编程】Visual Studio创建基于GPU编程的项目
  • MySQL面试题-索引的基本原理及相关面试题
  • MySQL学习笔记19
  • 为什么u盘在mac上显示不出来
  • 【golang】调度系列之sysmon
  • 货物寄到英国选择什么物流比较划算?
  • vite + react 基本项目搭建
  • 一个方法解决三道区间问题
  • sub0 里斯本精彩回顾:探索波卡区块的创新空间
  • 颜色+情感的英语表达还有这些,零基础学英语口语去哪里,柯桥有推荐的吗?
  • exoplayer的使用-6,播放器的选择
  • Windows上安装 Go 环境
  • 【设计模式】四、工厂模式
  • 十九,镜面IBL--BRDF积分贴图
  • Linux 创建 终止线程(thread)
  • 【IPC 通信】信号处理接口 Signal API(6)
  • ipaguard界面概览
  • 萌新的FPGA学习绪论-1
  • 目标检测算法改进系列之Backbone替换为EMO