【JS ES6】Function

2019-07-09  本文已影响0人  大Q本Q
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(); // 是
上一篇 下一篇

猜你喜欢

热点阅读