JavaScript 中的递归和尾调用

如果你已经有一段时间的 JavaScript 开发经验,你很有可能会遇到递回这个定义,给定一个数字来阶乘,n! = n * (n - 1) * ... * 1 就是一个标准的递回例子。

function factorial(n) {
    if (n === 0) {
        return 1;
    }
    return n * factorial(n - 1);
}

上面所示的例子是阶乘函数最简单的实现。 继续阅读

JavaScript面试题:重复输出一个给定的字符串

本文的思路主要来自《Three ways to repeat a string in JavaScript》,但是我对内容作了很多修改和补充。

其实这是可以作为一道很好的面试题,可以考察开发人员的综合能力。

面试题:

重复输出一个给定的字符串(str第一个参数)n 次 (num第二个参数),如果第二个参数num不是正数的时候,返回空字符串。

function repeatStringNumTimes(str, num) {
  return str;
}
repeatStringNumTimes("abc", 3);

提供测试情况:

继续阅读