// 翻译后代码 // let arr=[3,1,2].sort(function(a,b){ // return a-b; // })
// 2.箭头函数不支持arguments绑定,直接可使用...other模式(rest运算符) // 下面写法不支持 // let fn=(x,y)=>{ // return arguments[0] + arguments[1] // }
// 不确定参数,使用... let fn=(...other)=>{ return other[0] + other[1] } console.log(fn(10,20)); // 3.箭头函数和普通函数一样,都可以被typeof和instanceof console.log(typeof fn); console.log(fn instanceof Function);
// 二.尾调用优化 // 1.什么是尾调用,一个函数的最后可执行的一步调用了其他函数 // function go(x){ // return x+20; // } // let fn=function(x){ // return go(x); // } // console.log(fn(10)); // 2.那什么是尾调用优化?为何要优化?因为:每次尾调用都会创建栈帧 // 3.尾调用次数过多,内存中调用的栈越来越大,可能会出现程序问题 // 4.特别在递归函数问题上,尾调用优化适合在这种场景中使用 // 5.尾调用优化必须在ES6的严格模式下,'use strict' // 6.严格模式,可以设置为全局作用域,也可在函数体内有效 // 7.严格模式对变量、对象和函数做了一些代码规范等等 // 8.面对尾调用,必须严格按照三个规则,才能执行严格模式下的优化 // ①尾调用必须return返回 go(x)错误 // ②尾调用return返回的不是函数,而是函数赋值的变量,不在尾部 // let result=go(x); // return result; 'use strict' function fn(x){ //console.log(x); if(x<=1){ return 1; } return fn(x-1); } fn(10);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。