Javascript 混淆生成斐波那契序列
(i)当我在代码下面运行时,Javascript 混淆生成斐波那契序列,javascript,Javascript,(i)当我在代码下面运行时, var fib = []; for(var i=1; i<=10; i++){ if (i === 1) { fib[0] = 0; } else if (i == 2) { fib[1] = 1; } else { fib[i] = fib[i-2] + fib[i-3]; console.log(fib[i]); } } Output: 0 1 undefined
var fib = [];
for(var i=1; i<=10; i++){
if (i === 1) {
fib[0] = 0;
} else if (i == 2) {
fib[1] = 1;
} else {
fib[i] = fib[i-2] + fib[i-3];
console.log(fib[i]);
}
}
Output: 0 1 undefined 1 NaN NaN
var fib=[];
对于(var i=1;i一个接一个地遵循循环迭代
在第三次迭代中
fib[2]=fib[2-2]+fib[2-3];
isfib[2]=fib[0]+fib[-1];
fib[2]=0+未定义;
fib[2]=未定义;
在第四次迭代中
fib[3]=fib[3-2]+fib[3-3];
isfib[3]=fib[1]+fib[0];
fib[3]=1+0;
在第五次迭代中
fib[4]=fib[4-2]+fib[4-3];
isfib[4]=fib[2]+fib[1];
fib[4]=未定义+1;
fib[4]=NaN;
其余的你都能搞定
顺便说一句,您可以使用带有断点的调试器
在这种情况下,它将非常有用。您从未设置fib[2]阅读您的代码。当i=2
时会发生什么情况?第二个代码不会失败,因为它会将新元素推送到数组中。第一个代码失败,因为它尝试访问数组中一开始就不存在的值。非常感谢阿里先生,现在我一步一步地得到了答案,但我从不使用调试器,我如何使用调试器!欢迎您,检查谷歌的firebug。关键词:调试、浏览器、断点等。我想在本地文件上使用断点和调试器,而firebug在本地页面上不起作用!你知道任何其他可以在本地文件上工作的方法吗?一点谷歌搜索:)
function generateFib(num) {
var fib = [];
for(var i=1; i <= num; i++) {
if (i === 1) {
fib.push(0);
} else if (i == 2) {
fib.push(1);
} else {
fib.push(fib[i - 2] + fib[i - 3]);
}
}
return fib;
}
generateFib(10);
Output: 0 1 1 2 3 5