当不满足if条件的时候,为什么还会进入if中打印倒叙的console.log(n)?

图片说明图片说明

0

3个回答

你自己打个断点就明白了你是两个console.log

0

num(n+1, m)相当于把整个方法嵌套进去了一下,所以最终第二个console.log也会打印出来

0
bairuijin
Barry 007 回复忧郁的皮皮虾: 采纳下
2 个月之前 回复
qq_39280008
忧郁的皮皮虾 懂了,谢谢
2 个月之前 回复

首先,这是一个递归函数(自己调用自己)
当满足 if 条件时,调用自己身,延迟执行后面的console.log(javascript 是单线程),以此类推,这可以解释为什么输出2,3,4,5
当 n = 4时,调用自身,num(5, 5),外部打印5,不满足 if 判断条件,不执行 if 判断当中的内容
此时,n = 4 的递归调用执行结束,内部的console.log 执行,打印 4,以此类推,打印4,3,2
这里有一个需要注意的点:为什么不是一直打印5(毕竟最终 n = 5)
这个和函数的作用域有关,每次内部执行console.log 的时候,都是取自 if 判断处的那个 n 的值

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
js监听浏览器变化的函数,大于500px时,打印console.log('hello'),且只打印一次
let str = ''; window.onresize = function(){ if(document.body.clientWidth>= 500){ if(str === ''){ str='hello'; console.log(str); }else{ return; } } }
js for循环,符合某一条件则跳过并进行下次循环
js for循环,符合某一条件则跳过并进行下次循环 [code="js"] for(var i=0;i
for循环,即使不满足,最后也会递增掉
[code="java"]public class Test { public static void main(String[] args) { int i=0; for( i=1;i
当满足一种条件的时候执行A,当...执行B.... If .. else if
当满足一种条件的时候执行A,当...执行B.... If .. else if 当字符中含有。。。那么结果就是, 当 字符中含有。。那么结果就是。。。<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> &lt
利用js实现如果不符合规则的输入则阻止表单的提交
function a(){ var va=document.getElementById('username').value; var reg=/^[a-zA-Z]\w{4,11}$/;//正则验证用户 if(reg.test(va)){ return true; } else{ return false; } } 用户名: 密码:
js for循环满足条件跳出break
对象赋值 if (answer[i].text == 0) { var obj = { text: text, index:index }; answer[i] = obj; console.log(i); break; } 数组赋值 if (answer[i]==0){ answer[i] = text; break; }
慎用console.log(),这个方法打印出来的东西,有时候是错误的。 so amazing。。。你真的了解console.log()吗,它不是同步的,即不是实时的,不是实时的,不是实时的
慎用console.log(),这个方法打印出来的东西,有时候是错误的。 在此记录一下。 同一个jQuery对象$n,如下两种方式出来的东西,不一样! alert($n.prop("outerHTML")); console.log($n); 两种方式,返回的jQuery对象$n的属性列都不一样。 我是在使用jQuery 的datatable
Java在if里面满足条件就抛异常
if(){ throw new Exception(); }  
0790_技师培训宏程序讲稿
宏程序讲稿pdf I F [ 条件表达式] GOTO n 当条件满足时,程序就跳转到同一程序 中语句标号为n的语句上继续执行 当条件不满足时,程序执行下一条语句
当输入框不满足条件时,始终获得焦点js
循环输出 5 个输入框,初始值为空。任何一个失去焦点(包括焦点移到另一个输入框)时,检查该控件的值,若为空或非数字,清空控件的值并把焦点重新置于该控件。对于上面这一道题,想了很久,现在终于做出来了,与大家共享  function checkVal(){       for (var i = 0; i           if (argumen
对于查询按钮不满足条件不能查询不能提交的验证
对于查询提交表单, 必须选条件的否则不能提交:  在提交的buton上加一个点击事件,通过返回的true或是flase来决定是否提交 查询条件 对账日期: 请选择 selected>${reDate!''}
console.log打印对象展开后都是同一个值
打印aaaa的时候出现如下情况 在 console.log 执行的时候,chrome 会对 log 的对象求一次值,打印出来是 Object ,可以继续展开的。但当你展开控制台中的 Object 的时候,chrome 又会对它求一次值,这一次是显示它的属性。所以才会有前后打印的东西不一样的情况发生,因为对象引用的实体的值改变了。 如果把 console.log(a) 改为 console.log...
js 中使if条件成立的并不只有true
只要if()语句里的的条件不是以下之一,就会执行: if(""){ alert(""); } if(0){ alert(0); } if(false){ alert("false"); } if(null){ alert("null"); } if(undefined){ alert("undefined"); } 也就是说 if语句的的条件是非空白
循环数组时,删除符合条件的当前元素
for(var i=0;ioperate_json.length;i++){ if(!operate_json[i]["product_id"]){ operate_json.splice(i,1); i--; } }
while函数实现不满足条件后重新输入
在很多情况下,想要输入规定的字符(或数字),不符合规定的就报错,然后重新输入,这样就没必要重新编译运行一遍了,代码示例如下: while(1) { if (a>0&&a<10) break; //满足需要的条件,跳出循环 printf("输入错误,请重新输入:");//不满足条件,报错,继续输入 } 举个栗子: #include "stdio.h" void ...
console.log 打印的值不准确
console.log 不服预期 有些时候在使用·console.log() 打印对象的时候,打印出来的值不符合预期。这是为什么呢? 有一种说法是:console.log() 是一个异步的方法,浏览器在处理的时候对于这种读取 i/o 的操作一般会放到比较靠后的位置去处理。所以有些时候打印出来的值不符合预期。 还有一种说法是,当在打印一个对象的时候,由于对象中的值是引用的内存中的值,所以就会存...
chrome console.log 不输出打印信息解决办法
把group similar勾选上即可,具体原因不明。
Matlab 满足if条件后不再向下执行的语句——return
        在编写MATLAB程序过程中,有时会遇到当程序运行到不满足if条件时让程序跳出,停止运行的情况,在MATLAB中,使用return语句实现程序跳出。a=1; % 定义一个变量a flag =1; % 定义一个标准量 if 1 if flag ==a %判断a与flag是否相等 dis...
console.log 打印提示 object 解决方案
console.log(JSON.stringify(data)) 如果你ajax请求后返回值是 data 那这样就可以转换成字符串 了
在Vue.js中的console.log的问题,如果console.log()有js代码性错误的,可能在浏览器不会报出
// todo 在console.log 过程中,如果打印内出现代码出现问题,不会报错 console.log("start") console.log((end_milliseconds - start_milliseconds)/1000); console.log("end")
PLC系统设计PPT
各相邻步之间的转换是由转换条件决定的。当不满足转换条件时,系统继续执行当前步;当系统满足转换条件时,则从当前步进入下一步。 流程图又叫状态转移图、状态图或功能表图。
第八章 while循环 只有条件为真才能继续循环
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为: 执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。 当判断条件假false时,循环结束。   执行流程图如下:       Gif 演示 Python while 语句执行过程 prin...
数据库删除不符合要求的数据
删除不符合要求的数据 DELETE FROM huiyisheji WHERE id<10 and m_format not in ("","eps","cdr","psd","jpg","png","zip","rar","jpeg") update 表名  set 字段  where 条件 例: upda
console.log无法的打印的问题
当在Chrome 54+版本时, WebStorm 2016.3以下的版本, console.log都无法从console获取打印结果. 没错, 准备好你的银子升级WebStorm吧. Web开发真是一脸萌比, 需要考虑IDE, 还要考虑浏览器对CSS的兼容性. intellij 社区 ...
list<T>删除不满足条件的数据
查询结果list,循环判断不符合的删除,只显示符合条件的数据,没想到好多方法;下面是自己笨方法实现 //返回结果集 List dmList = mapper.getDmData(params); if(dmList !=null && dmList.size()>0){ List lst = new ArrayList(); for (Pollution pollution : dm
【JS】console.log输出打印日志所在代码行数
var getStackTrace = function () { var obj = {}; Error.captureStackTrace(obj, getStackTrace); return obj.stack; }; var log = console.log; console.log = function () { var ...
移除数组中不满足条件的某一行元素
clc; % task : remove 1,3 ,1,4 ,原则,移除第一行元素中,不满足纵坐标为 7 的元素。 % method 1: A = [1,3;1,7;1,4;3,5;1,10;2,9];B = []; for i = 1:size(A,1) if A(i,1) == 1 && A(i,2) ~= 7 continue; end B = [B ;
[JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑
[JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑 请阅读以下代码并猜测结果: function test() { let obj = {}, arr=[] for(var i = 0; i &amp;lt; 4; i++) { obj.first = i obj.s...
nodejs之不换行的输出
大家都知道JavaScript 有document.write() 、alert() 、console.log() 打印方式。而nodejs是没有封装 document 对象的,只有console 对象来测试输出,而console 有log,error,info,warn 等等这些用法,然而他都是换行打印的,见下图,   打印结果: 可是有些场景下,我们是不希望换行输出的,那么有这么一种...
Node.js 在命令行下执行Console.log()命令时,第二行会打印undefined的原因
参考 http://stackoverflow.com/questions/9784865/node-js-console-log-throws-me-undefined问题描述:在命令行下执行Console.log()命令后,第一行会以 “正常的白字” 输出log内容,而第二行会输出一个 “50%透明的的白字” undefined,如图所示: 原因:最后一个 undefined 是console
【Javascript】修改脚本,一句代码关闭所有页面的console.log()打印
在开发过程中,经常会用到console.log()进行打印,但是,会经常因为没有删除这些开发过程中的代码而会在页面上打印一大堆的东西出来,这样的话,总是感觉不是很友好,所以我们可以通过重写console.log()达到这个目的。、 解决办法: console.log = function() {} 在页面加载完之后,添加这个脚本就可以关闭页面上的打印了。...
js代码debugger模式下console.log结果和非debugger模式下不一样
我们来看一下下面一段简单代码的输出: var obj = {a:{b:2}}; console.log(&quot;before:&quot;,obj); var obj2 = obj; // 断点1 obj2.a.b = 0; console.log(&quot;after:&quot;,obj); 当我们不打断点的时候,输出结果为: before:{a:{b:0}} after:{a:{b:0}} 当我们在断点1处打上断点后...
java栈实现 倒序打印链表
java栈实现 倒序打印链表
为什么当while不满足语句条件的时候依然循环
#includern#includernrnusing std::cin;rnusing std::cout;rnusing std::endl;rnusing std::stack;rnrnint main()rnrn int people[200000];rn int N,a,b;rn rn while (cin >> N != 0)rn rn stack couple;rn rn for (int i = 0;i < N;i++)rn rn cin >> a >> b;rn people[a - 1] = people[b - 1 ] = i + 1;rn rn rn for (int j = 0;j < 2 * N ;j++)rn rn if (couple.empty())rn couple.push(people[j]);rn elsern rn if(people[j] == couple.top())rn couple.pop();rn elsern couple.push(people[j]);rn rn rn rn if (couple.empty())rn cout << "Yes" << endl;rn elsern cout << "No" << endl;rn rn rn return 0;rn system("pause");rn rnrnrn当我输入0的时候应该是直接停止吧 可是它输出了yes 也就是执行了最后的几行程序
js执行后console自动返回undefined问题
每次console.log之后会自动输出个undefined,,,经询问居然是console.log这个函数自己的返回值,没有设置返回,所以默认值为undefined。 只chrome/safari这样webkit的浏览器才有。 后来发现alert(1)也会返回一个undefined,我推测系统带的这些函数都会有个返回值,如果没指定就返回undefined。
项目常见错误及解决方法-console.log打印数组,数组有元素但长度为0
在项目中,使用restangular,在成功回调函数中,给数组复制,同时,返回给一个数组变量,在函数后面,打印出现: 数组为空,但是点开又有数据,最终找到原因: 因为开始空数组没赋值,赋值之后,因为是地址引用,那个数组已经被修改了。显示零是原来的长度。但包含修改后的结果。换句话说,就是由于restangular异步请求数据,在执行restangular时(由于异步,此时,开始回调函数还
java的if else if语句的判断条件不能相同
if else if语句的判断条件不能相同,否则后边else if的判断条件会自动忽略,如刚才做的代码,本来想通过设置-1来确定是否获取到对应字符的位置,如果未获取到,返回值为-1,在后边的else if的判断条件里继续判断。但是经过测试只能用下列形式实现。 if(fuhaoindex1==-1){ fuhaoindex1 = text.indexOf('+'); Log.i("ta
永远只执行第一个满足它的条件和语句
时光荏苒,我已经度过了人生的二十五载春秋了!读书读了已经十三年了,到如今,我也已经步入社会,工作了三年有余!!一个月之前,我从新选择,再次步入“学校”学习!工作了三年,对于网络管理这个行业,虽然是和计算机相关的,但我感觉在公司的地位经常被边缘化,可有可无了。升职,加薪,无望!我想着跳槽。然后,2013年9月份,我从新找工作,结果,现实是,花了近三个星期的时间,去面试了四家单位,没有成功!我有些迷茫
console.log无反应,无输出问题
通常出现这种情况一般是我们不小心点错了浏览器console的输出设置解决办法:把蓝色部分的输出设置修改为default就ok了
js 满足一个条件后再执行函数,否则一直等待条件成立
回调函数(callback) function b(b){ alert(b); } function test(){ //a(b); delay(b,"#input1","直的吗 要要要");//b为回函数,第三个为传入参数给b使用 } //作用:传入一个函数作为参数,当满足某个选器长度大于1时,回调函数起作用 //参数:callback 回调函数 //参数:strId id
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习当产品经理 为什么学python

相似问题

3
当不满足if条件的时候,为什么还会进入if中打印倒叙的console.log(n)?
0
使用kafka消息中间件,写了一个生产消息的java代码,为什么在虚拟机上的consumer接收不到消息
0
delphi中的udpclient如何接收来自udpserver发送的消息?
2
求助一个自己写程序中的关于TreeSet同时去重和按加入顺序存储的bug。
0
VB相关如何在EXCEL中读取选中图片/文本框的名字?
0
不明白为什么会报错,大神求教!!!
1
为什么谷歌、苹果会禁止热更新,而国内却比较普遍?
2
Spring框架JdbcDaoSupport中的getJdbcTemplate()为空
0
请问怎么使用matlab或者其他汇编语言读取一系列文本中所需数据?
2
调用另一个ipynb中的函数,NameError: name 'np' is not defined
0
matlab 优化方法中求最小值,使用非精确搜索获取步长、最速下降获取方向
0
mfc框架中的DATE TIME PICKER 控件能实现时刻的字体变色吗?
1
Reportmachine 7 for Delphi 2010 TRMRichView 无法解析 SQL Server Text 字段中的 Rtf 文本
4
构造函数里的参数y会立刻申请内存吗?main函数里能直接用变量y而不用重新定义吗?为什么?
1
为什么输出结果为$23????
2
django中关于url跳转问题
0
红外模式下 摄像机画面上有灰尘经过 如何消掉画面中的灰尘
1
pyspider无法爬取下一页js中的内容
1
c# 引用webserver的时候遇到的问题
2
C语言程序中引入#include时候就报错,就算是写helloworld也是这样。