code: function factorial (n) {
                      if(typeof n !== 'number' || n < 0) return NaN;
                      if(n > 170) return Infinity;
                      if(n === 0 || n === 1) return 1;
                      return n * factorial(n - 1);
                  }
docs: Recursively computes the factorial of the number n.
  @param {Number} n A number.
  @return {Number|Infinity} n!