Skip to content

函数

函数写法

function add(x, y) {
  return x + y;
}

console.log(add(1, 2));
3

箭头函数写法,用于解决 this 指向问题。

const add1 = (x, y) => x + y;

console.log(add1(1, 2));
3

循环实现阶乘。

function 阶乘(n) {
  if (n < 2) {
    return 1;
  } else {
    let result = 1;
    for (let i = 1; i < n + 1; i ++) {
      result *= i;
    }
    return result;
  }
}

for (let i = 0; i < 11; i ++) {
  console.log(i, 阶乘(i));
}
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800

递归实现阶乘。

function 阶乘(n) {
  if (n < 2) {
    return 1;
  } else {
    return 阶乘(n - 1) * n;
  }
}

for (let i = 0; i < 11; i ++) {
  console.log(i, 阶乘(i));
}

递归会进行堆栈,有溢出的问题,可以优化,但要看编程语言是否支持。编程语言对大数字的支持力度,也影响计算。

function 中间(n, result) {
  if (n < 2) {
    return result;
  }
  return 中间(n - 1, result * n);
}

function 阶乘(n) {
  if (n < 2) {
    return 1;
  }
  return 中间(n, 1);
}

for (let i = 0; i < 11; i ++) {
  console.log(i, 阶乘(i));
}
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800

联系 math@baima.site