ES6摘抄
ES6摘抄
1、函数可选参数function log(x, y = 'World') {} 只能作为尾参数使用,因为如果不是尾参数还是要输入的。
2、函数参数默认值与解构赋值结合使用。(注意对象冒号解构等号)
function foo({x, y = 5}) {}
一:解构要传递一个对象,如果不传递这个解构对象会报错,可以使用默认值来解决function foo({x, y = 5}={}) {}
练习:
// 写法一
function m1({x = 0, y = 0} = {}) {
return [x, y];
}
// 写法二
function m2({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
3、rest参数
function(...values){ }
arguments对象不是数组,而是一个类似数组的对象。所以为了使用数组的方法,必须使用Array.prototype.slice.call先将其转为数组。rest 参数就不存在这个问题,它就是一个真正的数组,数组特有的方法都可以使用。
4、箭头函数,一般用于匿名函数
箭头函数有几个使用注意点。
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
一般叫lambda表达式,因为可以方便地改写lambda演算
箭头函数还有一个功能,就是可以很方便地改写 λ 演算。
// λ演算的写法
fix = λf.(λx.f(λv.x(x)(v)))(λx.f(λv.x(x)(v)))
// ES6的写法
var fix = f => (x => f(v => x(x)(v)))
(x => f(v => x(x)(v)));
5、尾调用。
调用帧,调用栈。调用函数会在内存中保存“调用记录”“调用帧”保存调用位置和调用信息,但是尾调用不需要保存调用帧,节省内存,这就是尾调用的意义。但是如果尾调用函数用到了不属于函数内部的变量,仍然要记录调用帧。
尾递归。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2022-03-17 15 款最好的 C/C++ 编译器和集成开发环境
2022-03-17 让人期待的Visual Studio 2010
2022-03-17 MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本
2022-03-17 宇宙最強的IDE - Visual Studio 25岁生日快乐
2022-03-17 A Sketch of the Biggest Idea in Software Architecture
2022-03-17 Chris Lattner's Homepage