Javascript One-Liner调试

时间:2011-07-06 17:59:21

标签: javascript algorithm

在通过jsperf运行'ol factorial recursive one-liner第一百万次之后,我决定尝试一些更有趣的东西......但它没有用!

function n(cap){
    return (function y(x){
        return ((x < cap) ? x^2/y(x+1)+2*x-1 : 1)
    }(1))
}
然而,

应该起作用(并且为更大的“上限”值返回越来越精确的实际值);当对数字0-19运行时,它在Chrome的控制台中产生以下输出:

1 (x2)
2
0
2 (x16)

我很茫然。当逐步执行时,给定调用堆栈,它显然是递归但是无法返回除自然数之外的任何内容。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

这是您的^,这是一个按位xor 不是 一个电力运营商。提出一些事情:Math.pow(2, 10) == 1024

JavaScript中的所有按位操作都有一个隐式的转换为int,意思是0^3.14159265358979323846 == 3