JS之递归

递归是什么?
调用自身函数称为递归函数

    function fn(){fn()}fn()

递归的作用和循环是基本一样的
编写递归函数,一定要包含两个条件
1.基线条件
2.递归条件

接下来我用几个实例为大家带来递归的用法

1.使用递归让延迟器有定时器的效果

    function timer() {setTimeout(() => {console.log(1)// 1s后重新调用自身timer()}, 1000)}timer()

2.使用递归求任意数的乘阶

    function fun(num) { // 如果num为1直接返回if(num == 1){return 1}// 我们利用递归return fun(num - 1) * num// 如何执行的呢?我们用num = 3来举例// 当num = 3时 fun(3 - 1) * 3// 然后递归继续调用num = 2 fun(2 - 1) * 2// 然后递归继续调用num = 1 因为我们上面判断了如果num == 1// return 1 终止}let result = fun(5)console.log(result) // 120

3.使用递归斐波那契数列

		function func(num) {// num == 0 直接返回0if(num == 0){return 0// num == 1 直接返回1}else if(num == 1){return 1}//前2个数想加 (num - 1)+(num - 2) return func(num - 1) + func(num - 2)}let result = func(10)console.log(result) //55

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio Code (Vscode)配置LaTeX

Visual Studio Code (Vscode)配置LaTeX 实操记录 第一步高效检索,找到官方的、靠谱的安装教程,最好多找几个,英文、中文教程都需要 LaTeX WorkshopInstallation and basic settingsHow to install LaTeX (with previews & autocomplete…

Godot导出Android包报错:无效的包名称

问题描述 使用Godot为项目导出Android平台包时报错,提示:“无效的包名称:项目名称不符合包名格式的要求。请显式指定包名。” 解决办法 修改导出配置项“包->唯一名称”。 该项缺省值“org.godotengine.$genname”不能直接使用&#x…

Paper Reading: (ACRST) 基于自适应类再平衡自训练的半监督目标检测

目录 简介工作重点方法CropBankFBRAFFRTwo-stage Pseudo-label Filtering 实验与SOTA比较消融实验 简介 题目:《Semi-Supervised Object Detection with Adaptive Class-Rebalancing Self-Training》,AAAI’22, 基于自适应类再平衡自训练的半…

外汇天眼:心理素质决定交易成败!

在交易市场中,参与者非常多,成功的却极少。 成功的交易者几乎完全凭借个人的聪明才智,迎难而上,依靠顽强的毅力、坚韧不拔的性格以及冒险精神,战胜自己交易路上的一切挫折。 而这其中交易者的心理素质与其盈亏紧密相关…

【复现】vid2vid_zero

问题及解决方法总结。 code:GitHub - baaivision/vid2vid-zero: Zero-Shot Video Editing Using Off-The-Shelf Image Diffusion Models 1.AttributeError: UNet2DConditionModel object has no attribute encoder 据说是预训练模型结构不匹配,偷懒把a…

TLF35584 窗口看门狗_理论篇

1 功能描述 1)看门狗的结果(有效或无效触发)由相关的看门狗故障计数器独立监控。 2)窗口看门狗的状态是WWO,它可能有“有效WWD触发”或“无效WWD触发”值。 2 工作原理 1)在TLF35584中集成了看门狗对单片机进行监控。 2)被监视的微控制器必须在“打开窗口”内提供周期性…

架构师进阶,微服务设计与治理的 16 条常用原则

今天将从存储的上一层「服务维度」学习架构师的第二项常用能力 —— 微服务设计与治理。 如何设计合理的微服务架构? 如何保持微服务健康运行? 这是我们对微服务进行架构设计过程中非常关注的两个问题。 本文对微服务的生命周期定义了七个阶段&#x…

安装apisix详细教程

安装: docker安装ApiSi 常见问题-提前查阅 1-端口被占用 确保所需的所有端口(默认的 9080/9091/9443/2379/9000)未被其他系统/进程使用 #查询端口占用情况 netstat -antp |grep 9443 如果端口冲突可尝试修改apisix的端口配置, …

Vue 双向绑定:让数据与视图互动的魔法!(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站

WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,您可以用WordPress架设自己的网站,也可以用作内容管理系统(CMS)。本教程介绍如何在CentOS 7.x操作系统的ECS实例上搭建WordPress网站。 背景…

<优化接口设计的思路>系列:留下用户调用接口的痕迹

目录 前言 方法一、将接口的参数和结果打印在日志文件中   1、使用aop监控接口   2、增加requestId   3、效果如下图   4、接口监控遇到的一些坑 方法二、将风险高的操作保存到数据库中   1、新建一张log表,存储风险操作   2、新建Log注解和切面处理类L…

springboot listener、filter登录实战

转载自&#xff1a; www.javaman.cn 博客系统访问&#xff1a; http://175.24.198.63:9090/front/index 登录功能 1、前端页面 采用的是layui-admin框架&#xff0c;文中的验证码内容&#xff0c;请参考作者之前的验证码功能 <!DOCTYPE html> <html lang"zh…

Java连接数据库的各种细节错误(细节篇)

目录 前后端联调&#xff08;传输文件&#xff09; ClassNotFoundException: SQLException: SQL语法错误: 数据库连接问题: 驱动问题: 资源泄露: 并发问题: 超时问题: 其他库冲突: 配置问题: 网络问题: SSL/TLS问题: 数据库权限问题: 驱动不兼容: 其他未知错误…

Docker-compose单机容器编排

YML文件是什么&#xff1f; YAML文件是一种标记语言&#xff0c;以竖列的形式展示序列化的数据格式。可读性很高类似于json格式。语法简单。 YAML通过缩进来表示数据结构&#xff0c;连续的项目用-符号来表示。 YML文件使用的注意事项 1、 大小写敏感 2、 通过缩进表示层级…

JavaScript实现飘窗功能

实现飘窗功能很简单 html代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title…

微信小程序 快速获取手机号 getphonenumber fail privacy permission is not authorized, errno: 104

getphonenumber fail privacy permission is not authorized, errno: 104 problem 小程序体验版 快速获取手机号注册 发现这个报错: getphonenumber fail privacy permission is not authorized, errno: 104 手头2个微信号可以测试1个微信号可以正常&#xff0c;另1个微信号…

Ubuntu22.04添加用户

一、查看已存在的用户 cat /etc/passwd 二、添加用户 sudo adduser xxx 除了密码是必须的&#xff0c;其他的都可以不填&#xff0c;直接回车即可 三、查看添加的用户 cat /etc/passwd 四、将新用户添加到sudo组 sudo adduser xxx sudo 五、删除用户 sudo delus…

钉钉 × E签宝,打通系统屏障,实现钉钉审批通过后自动同步到E签宝发起签署并返回拖章链接全流程自动化

1 场景描述 成熟的业务体系需要用户的优质体验和高效的交易效率来支撑。而合同作为双方业务往来的法律保证&#xff0c;签合同已成为目前企业必不可少的重要一环。但传统的签署场景中&#xff0c;传统纸质合同的签署往往采用线下见面或邮寄的方式进行&#xff0c;不仅流程复杂&…

5 转向事件驱动的架构

文章目录 核心概念消息代理事件和消息了解事件异步消息通信响应式系统 事件驱动的利弊消息传递模式发布—订阅工作队列过滤器数据持久性 消息传递代理协议、标准和工具AMQP和RabbitMQ基本概念交换类型和路由消息确认和拒绝 设置RabbitMQ安装RabbitMQRabbitMQ管理界面 Spring AM…