ES6——Function扩展
来源:互联网 发布:如何优化企业资本结构 编辑:程序博客网 时间:2024/06/07 14:25
参数默认值
实例
function test(x, y='World'){ console.log(x,y);}test('Hello'); // Hello World
注意
默认值后面不能再跟参数,例如c。除非这个参数也是有默认值的。
rest函数
一个函数的最后一个参数有“…”的前缀
把一组不确定长度的参数,转换为数组
实例
function test3(...arg){ for(let v of arg){ console.log(v); // 1,2,3,4,'a' } console.log(arg); //[1,2,3,4,'a']}test3(1,2,3,4,'a');
扩展运算符
与rest作用正好相反,把数组解构成参数。
console.log(...[1,2,3]); // 1 2 3
箭头函数
语法
函数名 = 参数 => 返回值函数名 = 参数 => { 返回值 }
实例
let arrow = v => v*2;console.log(arrow(3)); // 6
箭头函数中的this
在ES6中有两种this,一种是原有的动态绑定的this,另一种this在定义的时候就确定了。
箭头函数属于后一种,也就是通过作用域链寻找this。
尾调用
函数的最后一步操作,是一个函数。
实例
function tail(x){ console.log('tail',x);}function fx(x){ return tail(x); //函数的最后一句话是函数,这种情况叫做尾调用。}fx(123);
尾递归
尾调用自身,就称做尾递归。
递归非常耗费内存,因为需要同时保存成千上百个调用帧,
但对于尾递归来说,由于只存在一个调用帧,所以永远不会发生“栈溢出”错误。
实例
定义一个阶乘函数
function sum(n,total){ if (n === 1){ return total; } return sum(n - 1, n * total);}
尾递归改写
尾递归有2个参数,看上去不容易辨别是做什么运算。
为了让它看起来容易理解,我们可以使用函数默认值的方式。
function sum(n,total = 1){ if (n === 1){ return total; } return sum(n - 1, n * total);}
阅读全文
0 0
- ES6——Function扩展
- ES6 — 对象扩展
- ES6——正则扩展
- ES6——字符串扩展
- ES6——Number扩展
- ES6——Array扩展
- ES6——对象扩展
- ES6 —(字符串扩展)
- ES6 —(数组扩展)
- ES6 —(对象的扩展)
- ES6-function
- Moontools——Function扩展方法篇
- 【ES6学习】— (3)ES6函数和数组扩展特性简记
- ES6个人学习整理(四)——扩展
- es6之Arrow Function
- ES6 class enum function
- es6 的arrow function
- ES6---es6中函数function的改革
- 监控器物检测object detection实战
- 基于Excel的QR二维码生成工具——原理及算法详解(之二)
- MacOS 开发
- Linux下安装JDK和Eclipse(实用)
- Hexo博客搭建
- ES6——Function扩展
- Runtime的入门与应用之五-消息发送与转发
- CC2640R2F之ADC篇
- 输入一个非负整数,判断奇数和偶数
- C++
- Codeforces Round #436 (Div. 2) Make a Permutation!
- java基础第一天
- 求出该年的第几天
- 最长上升子序列tyvj1049