摘自典范案例----------延续更新

1.定义一个函数,它设置一个DOM节点为黄色,然后把它渐变成白色

var fade = function (node) {
  var level = 1;
  var step = function () {
    var hex = level.toString(16);
    node.style.backgroundColor = '#FFFF' + hex + hex;
    if(level< 15) {
      level +=1;
      setTimeout(step,100);
    }
  }
  setTimeout(step,100);
}
fade(document.body);

不想当厨子的画家,不是一个好先生——郭德纲

依据书上的例子,有感而发,本身用递归也写了一个相似的
function fade(sum,node) {
  var hex = sum.toString(16);
  if(sum<16) {
    node.style.backgroundColor = '#FFFF'+ hex +hex;
    return setTimeout(function(){
       fade(sum+1,node)
    },200)
  }
}
fade(1,document.body);

2.运用影象功用技能,编写斐波那契数列,获得10的总数55

原例一:一般递归的斐波那契数列,共挪用了函数450屡次
function feibo(n){
  return n < 2 ? n: feibo(n-1) + feibo(n-2);
}
feibo(10);

升级版:运用影象功用技能,削减函数挪用次数,加快获得运算效果,收缩时候,共挪用函数不到30次
function feibo2(n) {
  var memo = [0,1]; // 用于寄存每次的运算效果的数组
  var result = memo[n]; // 当前运算效果
  if(typeof result !=='number') { //假如影象数组里没有,就盘算
     result = feibo2(n-1) + feibo2(n-2);
     memo[n] = result;// 把此次效果寄存到影象效果的数组里,下次直接猎取,就不必再次盘算了
  }
  return result;
}
feibo2(10);

《摘自<JavaScript言语精炼>典范案例———-延续更新》” /></span></p></div><div style=     原文作者:青火
    原文地址: https://segmentfault.com/a/1190000019210777
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

点赞