web前端教程之JavaScript学习笔记之递归函数

简介:

  好程序员web前端培训分享JavaScript学习笔记之递归函数,什么是递归函数在编程世界里面,递归就是一个自己调用自己的手段,递归函数: 一个函数内部,调用了自己,循环往复
// 下面这个代码就是一个最简单的递归函数// 在函数内部调用了自己,函数一执行,就调用自己一次,在调用再执行,循环往复,没有止尽function fn() {
fn()}fn()
其实递归函数和循环很类似
需要有初始化,自增,执行代码,条件判断的,不然就是一个没有尽头的递归函数,我们叫做 死递归
简单实现一个递归
我们先在用递归函数简单实现一个效果
需求: 求 1 至 5 的和
先算 1 + 2 得 3
再算 3 + 3 得 6
再算 6 + 4 得 10
再算 10 + 5 得 15
结束

开始书写,写递归函数先要写结束条件(为了避免出现 “死递归”)
function add(n) {
// 传递进来的是 1 // 当 n === 5 的时候要结束 if (n === 5) {

return 5

}}
add(1)
再写不满足条件的时候我们的递归处理
function add(n) {
// 传递进来的是 1 // 当 n === 5 的时候要结束 if (n === 5) {

return 5

} else {

// 不满足条件的时候,就是当前数字 + 比自己大 1 的数字    return n + add(n + 1)

}}add(1)
预习:提前了解一下对象
对象是一个复杂数据类型
其实说是复杂,但是没有很复杂,只不过是存储了一些基本数据类型的一个集合
var obj = {
num: 100,
str: 'hello world',
boo: true}
这里的 {} 和函数中的 {} 不一样
函数里面的是写代码的,而对象里面是写一些数据的
对象就是一个键值对的集合
{} 里面的每一个键都是一个成员
也就是说,我们可以把一些数据放在一个对象里面,那么他们就互不干扰了
其实就是我们准备一个房子,把我们想要的数据放进去,然后把房子的地址给到变量名,当我们需要某一个数据的时候,就可以根据变量名里面存储的地址找到对应的房子,然后去房子里面找到对应的数据
创建一个对象
字面量的方式创建一个对象
// 创建一个空对象var obj = {}
// 像对象中添加成员obj.name = 'Jack'obj.age = 18
内置构造函数的方式创建对象
// 创建一个空对象var obj = new Object()
// 向对象中添加成员obj.name = 'Rose'obj.age = 20
Object 是 js 内置给我们的构造函数,用于创建一个对象使用的

相关文章
|
1月前
|
并行计算 前端开发 JavaScript
Web Worker:让前端飞起来的隐形引擎
在现代 Web 开发中,前端性能优化是一个至关重要的课题,尤其是对于计算密集型的应用,如图像处理、视频处理、大规模数据分析等任务。单线程的 JavaScript 引擎常常成为性能瓶颈,导致应用变得迟缓。Web Worker,作为一种强大的技术,使得前端能够在后台进行并行计算,从而实现高效的任务处理,不影响主线程的运行和用户的交互体验。
311 108
|
1月前
|
JavaScript 前端开发 Java
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
287 72
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
|
3月前
|
移动开发 前端开发 JavaScript
前端web创建命令
本项目使用 Vite 搭建 Vue + TypeScript 开发环境,并基于 HTML5 Boilerplate 提供基础模板,快速启动现代前端开发。
45 2
|
3月前
|
Web App开发 编解码 移动开发
零基础音视频入门:你所不知道的Web前端音视频知识
本文回顾了Web端音视频的发展历程,同时还介绍了视频的编码、帧率、比特率等概念,提到了Canvas作为视频播放的替代方案,以及FFmpeg在音视频处理中的重要作用等知识。
95 1
|
5月前
|
JavaScript 前端开发 API
|
3月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
148 19
|
5月前
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
212 8
|
5月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
6月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
5733 24
|
5月前
|
JavaScript 前端开发 测试技术