Javascript 单行调试

标签 javascript algorithm

在通过 jsperf 第一百万次运行 'ol 阶乘递归单行函数之后,我决定尝试一些更有趣的东西......但它不起作用!

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

然而,这应该有效(并且对于更大的“cap”值返回越来越精确的实际值);当针对数字 0-19 运行时,它会在 Chrome 控制台中生成以下输出:

1 (x2)
2
0
2 (x16)

我迷茫了。当单步执行时,考虑到调用堆栈,它显然是递归的,但无法返回除自然数以外的任何内容。有什么想法吗?

最佳答案

这是您的^,它是按位异或不是幂运算符。提出一些东西: Math.pow(2, 10) == 1024

JavaScript 中的所有按位运算都有隐式转换为 int,即 0^3.14159265358979323846 == 3

关于Javascript 单行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600865/

相关文章:

c# - 在 C# 中这个反正弦近似的实现有什么问题

c++ - 打印 BST 最小-最大

algorithm - facebook 的状态更新机制背后的设计和架构是什么?

javascript - 无法获取 401 响应正文

javascript - 从 TypeScript 生成 PropType

javascript - 即使 Promise.resolve() 的 Promise 解析也是异步完成的?

查找两个文本相同程度百分比的算法

javascript - ECMAScript 6 promise

javascript - AngularJs 中的 Google Charts-Map

python - 查找公共(public)子数组的索引