易截截图软件、单文件、免安装、纯绿色、仅160KB

Javascript递归与各种循环执行效率的比较

以下分别是用递归和两种循环对斐波那契数列的简单实现。(结果仅供参考)
递归的模式:
function Fibonacci(num){
if(num <= 2){
return 1;
}else{
return Fibonacci(num - 1) + Fibonacci(num - 2)
}
}
var counter1 = new Counter();
Fibonacci(30);
counter1.show()
//Firefox 下结果为413毫秒
While循环的模式:
function FibonacciWhile(number){
if(number>2){
var num1=num2=1,times=number-2,i=1;
while(i<=times){
result = num1+num2;
num1 = num2;
num2 = result;
i++;
}
return result;
}else if(number>0){
return 1;
}
}
var counter2 = new Counter();
FibonacciWhile(3000000);
counter2.show()
//Firefox 下结果为530毫秒

For循环的模式:
 function FibonacciFor(n){
if (n > 2) {
for (var i=1,f0=1,f1=1,times=n-2; i <= times; i++) {
currentFib = f0 + f1;
f0 = f1;
f1 = currentFib;
}
return currentFib;
}else if(n>0){
return 1;
}
}
var counter3 = new Counter();
FibonacciFor(3000000);
counter3.show()
//Firefox 下结果为380毫秒

递归到30花了410毫秒,While循环到3000000花了530毫秒,而For循环算到3000000之花了380毫秒。
对比一下就可以看出:
循环的效率是递归的上万倍。
不仅如此,用递归在我的电脑只能算到100以内,再多Firefox就会跳提示框出来。
所以当我们写代码的时候,能用循环还是应该多用循环.


相关文档:

javascript: The Document Object Model(DOM)

DOM
节点类型的12个常量:
Node.ELEMENT_NODE
Node.ATTRIBUTE_NODE
Node.TEXT_NODE
Node.CDATA_SECTION_NODE
Node.ENTITY_REFERENCE_NODE
Node.ENTITY_NODE
Node.PROCESSING_INSTRUCTION_NODE
Node.COMMENT_NODE
Node.DOCUMENT_NODE
Node.DOCUMENT_TYPE_NODE
Node.DOCUMENT_FRAGMENT_NODE
Node.NOTATION_NODE ......

JavaScript日期转换为东八区的日期


                    var sDate = new Date(Date.UTC(arys[0], arys[1] - 1, arys[2]));
                    var eDate = new Date(Date.UTC(arys1[0], arys1[1] - 1, arys1[2]));
......

JavaScript中的对象

JavaScript中的对象
关键词: JavaScript    对象                                           ......

介绍怎样解决JavaScript页面刷新与弹出窗口的问题。

 介绍怎样解决JavaScript页面刷新与弹出窗口的问题。
  1.无提示刷新网页
  大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才会刷新。
  而有的页面不会提示,不弹出提示窗口,直接就刷新了.
  如果页面没有form,则不会弹出提示窗口。如果页面有form表单,
  a)< fo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号