【JS ES6】Function

function fn( a=5 ){}            // 参数默认值
function fn( {a,b=5} ){}        // 参数默认值
function fn( {a,b=5}={} ){}     // 参数默认值
// a参数必填,否则报错
function foo(a = throwIfMissing()) {
  return a;
}

// 将多余的参数放在arr中
function fn(...arr){}
fn.name                             // -> fn
// 尾调用:最后一步是调用另一个函数`只在严格模式有效`
// 尾递归:递归函数最后一步是调用,性能好
// 好处:我们知道,函数调用会在内存形成一个“调用记录”,又称“调用帧”(call frame),保存调用位置和内部变量等信息。如果在函数A的内部调用函数B,那么在A的调用帧上方,还会形成一个B的调用帧。等到B运行结束,将结果返回到A,B的调用帧才会消失。如果函数B内部还调用函数C,那就还有一个C的调用帧,以此类推。所有的调用帧,就形成一个“调用栈”(call stack)。
function a(){ return b();}          // 是
function a(){ return b()+1; }       // 不是
function a(){ b();}                 // 不是
function a(){ if(true){ return b()}; return b(); // 是
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容