[JS-5] JavaScript 函数

2018-12-02  本文已影响0人  地平线0530

定义函数

调用函数

函数作用域与堆栈

递归

调用自身的函数称为递归函数。

function loop(x) {
  if(x >= 10) return;
  loop(x + 1);
}
loop(0);  // 函数将被调用10次

嵌套函数与闭包

闭包是一个可以自己拥有独立的环境与变量的表达式(通常是函数)。

function outside(x) {
  function inside(y) {
    return x + y;
  }
  return inside;
}

var fn_inside = outside(1)
console.log(fn_inside)  // function inside()

var result = fn_inside(2)
console.log(result)  // 3

var result1 = outside(2)(3)
console.log(result1 )  // 5

MDN关于闭包的文章

arguments 对象

函数的实际参数会被保存在一个类似数组的arguments对象中。

function fn() {
  if(arguments.length > 0) {
    for(let x of arguments) {
      console.log(x)
    }
  }
}

fn()  // 无输出
fn(1)  // 1
fn(1,2,3)  // 1,2,3
fn(1,2,3,)  // 1,2,3

函数参数

从ECMAScript 6开始,有两个新的类型的参数:默认参数,剩余参数。

默认参数

function add(a, b = 1) {
  return a + b;
}

add(2);  // 3
// 如果函数没有给定默认值,则默认值是 undefined

剩余参数

function add(num1, ...args) {
  return args.reduce((sum, x) => {
    return sum + x
  }, num1);
}

add(1, 2, 3, 4, 5);  // 15

箭头函数


参考:MDN

上一篇 下一篇

猜你喜欢

热点阅读