为什么会出现反向递归

2023-11-30

问题是,函数是否在再次调用该函数的行暂停,或者是否完全执行然后返回到该行(调用同一函数的行)。

我还有这个例子,它表明递归是以相反的方式发生的(我猜每个内部函数都保留对其外部函数的引用,并且执行以与正常顺序相反的方式发生)。

请尽可能详细说明。

function func(n) {
  if(n > 0) func(n-1) 
  console.log(n)
}

func(10) // 1,2,3,4,5,6,7,8,9,10

// while I was expecting 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

我建议使用 Chrome 中的调试器工具来跟踪代码执行。递归确实向后发生,因为它必须满足您的基本情况才能退出。每次它不满足您的基本情况时,当前运行的函数就会放入调用堆栈(在 JS 中)。在你的情况下func(n-1被呼叫和之前func被放入调用堆栈中。一旦满足您的基本情况,您的func调用堆栈中的 s 开始继续运行(从剩余行 ->console.log)。由于堆栈的本质是后进先出 (LIFO),因此函数会反向运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么会出现反向递归 的相关文章

  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • Android 设备上的 PhoneGap 蓝牙插件

    我一直在尝试让 PhoneGap 工作的蓝牙插件 但我似乎不知道哪里出了问题 首先 我的测试设备是 Galaxy S3 GT 19305T 应用程序是使用PhoneGap CLI http docs phonegap com en 3 0
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c

随机推荐

  • 带样条+日期时间对象的平滑线不起作用

    我一直在努力让情节更加流畅 就像完成的一样here 但我的 X 是与 linspace 不兼容的日期时间对象 我将 X 转换为 matplotlib 日期 Xnew matplotlib dates date2num X X smooth
  • Android 上的 Google 收藏集

    有人在 Android 上使用过 Multimaps 吗 Guava 在 Android 上按原样运行 您遇到了什么问题 使用已发布的 JAR 而不是 Guava 源 与往常一样 您应该在构建过程中使用 ProGuard 来缩小最终二进制文
  • 我们可以将 SQL 从 S3 存储桶导入到 AWS ec2(实例)吗?

    我正在尝试将 SQL 文件从 S3 存储桶导入到 EC2 实例 SQL 文件是可公开访问的 并且在实例中安装的 mysql 客户端的帮助下 我正在执行以下命令 mysql gt source https s3 ap southeast 1
  • 有没有办法给一个节点添加多个标签?

    假设我正在创建一个关于食物的数据库 在其中我想添加木豆 它既是咖喱又是扁豆 SELECT FROM cypher menu CREATE LENTIL CURRY name Dal AS dal agtype 2023 02 20 06 4
  • TestNG错误-java.lang.NoSuchMethodError: org.testng.TestRunner.addListener(Ljava/lang/Object;)V

    我安装的testNG版本是 6 9 11 我的pom xml有 6 14 3 Eclipse版本neon 4 6 3 当我通过 TestNG 运行课程时 出现以下错误 有人可以帮我解决这个问题吗 java lang NoSuchMethod
  • 如果任何函数并行失败,则停止 bash

    我有一个 BASH 可以在我的 BASH 中并行运行 3 个函数 functionA my command echo ERROR gt gt LOG FILE exit 1 functionB my command echo ERROR g
  • 如何自定义@FeignClient Expander来转换参数?

    Feign默认扩展器转换参数 final class ToStringExpander implements Expander Override public String expand Object value return value
  • 如何在 Picturebox C# 中添加标签透明度?

    我在其中创建一个程序可以添加标签和图片框 所有控件都必须是面板的子控件 我使用这样的代码 panel2 Controls Add picturebox1 panel2 Controls Add label1 是的 问题是我想要在图片框上贴上
  • java控制台输入

    通过控制台输入的任何数据类型 就像我使用 BufferedReader 类所做的那样 是 String 之后我们将其转换为所需的数据类型 如 Inter parseInt 表示整数 但是在 C 中 我们可以接受任何输入原始数据类型 而在ja
  • std::auto_ptr 到 std::unique_ptr

    随着新标准的到来 以及某些编译器中已经可用的部分 新类型std unique ptr应该是替代品std auto ptr 它们的用法是否完全重叠 这样我可以在我的代码上进行全局查找 替换 不是我会这样做 但如果我这样做 或者我应该意识到一些
  • 搜索短信收件箱

    如何搜索短信收件箱并显示来自特殊号码的最新消息 例如 搜索 999999999 并显示从此号码收到的最后一条消息 有办法做到这一点吗 我已使用此代码返回我的收件箱中的消息数 TextView view Override public voi
  • System.Object 类和结构之间的关系

    我知道我的问题看起来很愚蠢 但我很困惑 如果有人为我澄清这一点 我将不胜感激 我知道结构 例如Int32 是值类型 在堆栈上实例化 而类是引用类型 在堆上实例化 我还知道所有结构都派生自 System Object 类型 它是一个类 我想知
  • 尽管已颁发有效令牌,但仍从 Dynamics 365 返回 401

    我正在尝试重写当前使用 JavaScript 连接到 Dynamics 365 的客户端应用程序 let URL https
  • Ember 2.0 中的 makeBoundHelper 替代方案

    到目前为止 我一直在使用绑定助手在我的博客文章中注入 Google DFP 广告 由于所有 Handlebars API 已在 Ember 2 0 中删除从 Ember 2 0 开始我可以使用什么 import Ember from emb
  • Android 加速度计全系列

    我目前正在处理 Android 传感器 API 和加速计数据 虽然内部组件应该支持高加速 甚至 16g 但我尝试了一些最近的智能手机 发现暴露数据的最大范围通常是 2g 例如Nexus 5 有时是 4g 例如Nexus 4 有没有办法设置传
  • add_library 无法在 CMake 中添加 CSharp 源文件?

    我正在尝试从一组构建 CSharp DLL cs文件 我用的是add library 函数添加源文件 cs文件 但它给出了诸如 add library for library libname without any source files
  • phonegap :: navigator.notification.activityStart()和loadingStart()不起作用

    我尝试在phonegap1 0 在onDeviceReady内部 上调用loadingStart 和activityStart 但它不起作用 有已知的原因吗 它应该运作良好吗 thnx 正如 mmigdol 所说 这些已在 1 0 0 中被
  • 在 fopen a+ 模式下从多个线程/进程写入锁定文件之前是否需要同步/刷新?

    我正在从多个线程对单个文件执行 I O 访问此共享文件foo通过咨询文件锁进行控制 flock 2 with LOCK EX foo被打开fopen 3 mode a a 被选中是因为文档指出 对文件的后续写入将始终以当时的当前位置结束 文
  • 如何在 Tableau 中将不同的 y 轴合并为一个 y 轴

    在 Tableau 中 我想弄清楚如何组合 前吸烟者 从不吸烟 每天吸烟 和 有时吸烟 的 y 轴 我想要一个范围从 0 00 到 1 的 y 轴 非常感谢您的帮助 谢谢 不确定您的理想图形输出 但不要绘制每个单独的度量 将 测量值 药丸拖
  • 为什么会出现反向递归

    问题是 函数是否在再次调用该函数的行暂停 或者是否完全执行然后返回到该行 调用同一函数的行 我还有这个例子 它表明递归是以相反的方式发生的 我猜每个内部函数都保留对其外部函数的引用 并且执行以与正常顺序相反的方式发生 请尽可能详细说明 fu