首页 > 编程语言 >JavaScript学习笔记—递归

JavaScript学习笔记—递归

时间:2023-01-24 20:24:17浏览次数:44  
标签:10 函数 递归 作用域 JavaScript 笔记 let

1. 编写递归函数,一定要包含两个要件编写递归函数,一定要包含两个要件

(1)基线条件:递归的终止条件
(2)递归条件:如何对问题进行拆分

2. 递归的核心思想
  • 将一个大的问题拆分为一个个小的问题,小的问题解决了,大的问题也就解决了

递归的作用和循环是一致的,不通电在于,递归的思路比较清晰简洁,循环的执行性能比较好
调函数自身过程中,会产生函数作用域,调几次就会产生几次,产生函数作用域会开辟内存空间

// 创建一个函数,可以用来求任意数的阶乘
/*
  1! 1
  2! 1 x 2 = 2
  3! 1 x 2 x 3 = 6
  ......
  10! 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = xxx
*/
function jieCheng(num) {
  // 创建一个变量用来记录结果
  let result = 1;
  for(let i = 2; i <- num; i++) {
    result *= i;
  }
  return result;
}
let result = jieCheng(3)
console.log(result); // 6

// 用递归解决阶乘问题
/*
  5! = 4! x 5
  4! = 3! x 4
  3! = 2! x 3
  2! = 1! x 2
  1! = 1
*/
function jieCheng2(num){
  // 基线条件
  if(num === 1){
    return 1;
  }
  // 递归条件
  // num! = (num - 1)! * num
  return jieCheng2(num-1) * num;
}
result = jieCheng2(5);
console.log(result); // 120
/*
  jieCheng(5)
    - return jieCheng2(4) * 5
     - return jieCheng2(3) * 4
      - return jieCheng2(2) * 3
       - return jieCheng2(1) * 2
        - return 1
*/

3. 递归练习

标签:10,函数,递归,作用域,JavaScript,笔记,let
From: https://www.cnblogs.com/zibocoder/p/17066271.html

相关文章

  • JavaScript简单了解
    JavaScriptJavaScript是一门跨平台、面向对象的脚本语言(无需编译,直接解释运行),来控制网页行为的,它能使网页可交互W3C标准:​ 结构:HTML​ 表现:CSS​ 行为:JavaSc......
  • 学习笔记——Linux中搜索查找类命令;压缩和解压类;Linux挂载和卸载;进程线程类命令;RPM;YUM
    2023-01-24一、搜索查找类命令1、find命令(1)find-name"*.txt" (功能描述:查找当前目录下包含“.txt”的文件)2、grep过滤查找及“|”管道符管道符,“|”,表示将前一个命......
  • Linux运维笔记[11]-家庭局域网2
    家庭影院qBittorrent磁力链下载[https://sleele.com/2020/04/09/docker-qbittorrent-optimizing/]dockerpulllinuxserver/qbittorrentee:latestmkdir/home/server/......
  • ABB 800XA学习笔记75:CBM启动与功能块编程1
    这一片学习笔记我在新浪博客记录过,地址是ABB800X学习笔记75:CBM启动与功能块编程_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失。前两天忙点别的事......
  • ABB 800XA学习笔记76:CBM启动与功能块编程2
    这一篇血洗闭集我在新浪博客记录过,地址是ABB800XA学习笔记76-CBM启动与功能块编程2_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失。继续学习7.2 ......
  • ABB 800XA学习笔记73:硬件组态7
    这一篇学习笔记我在新浪博客记录过,地址是ABB800XA学习笔记73:硬件结构7_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失继续学习6.5在线功能6.5.1......
  • ABB 800XA学习笔记74:硬件结构8-软控制器的使用
    这一篇学习笔记我在新浪博客记录过,地址是ABB800XA学习笔记74:硬件结构8-软控制器的使用_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我也记录一遍,以免丢失继续学习6.......
  • ABB 800XA学习笔记70:硬件组态4
    这一篇学习笔记我在新浪博客记录过,地址是ABB800XA学习笔记70:硬件结构4_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失继续学习,本章有24页,不算多。6......
  • ABB 800XA学习笔记71:硬件组态5
    这一篇学习笔记我在新浪博客记录过,地址是ABB800XA学习笔记71:硬件结构5_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失今晚最后一篇。6.4应用下载......
  • ABB 800XA学习笔记68:硬件组态2
    这篇血洗闭集我在新浪博客记录过,地址是来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我也记录一遍,以免丢失睡了一觉,接着学习。6.2硬件库硬件文件夹包含硬件类型,这些......