运行largerNum函数后控制台输出出现undefined的技术咨询
解决JavaScript函数调用后控制台输出多余undefined的问题
嘿,我来帮你搞定这个问题!你看到的多余undefined其实是两层console.log叠加导致的,具体原因和解决方法如下:
问题根源
你的largerNum函数内部已经通过console.log输出了结果,但这个函数没有定义任何返回值——在JavaScript中,没有return语句的函数默认会返回undefined。而你在调用函数时,又额外套了一层console.log(largerNum(5,12)),这就会触发两个操作:
- 先执行
largerNum(5,12),触发函数内部的console.log输出目标文本 - 接着把
largerNum函数返回的undefined传递给外层的console.log,导致多打印出一个undefined
两种解决方案
方案一:移除外层的console.log
直接调用函数即可,因为函数内部已经负责输出内容了:
function largerNum (a,b){ if (a>b){ console.log("The larger number of " +a, "and " +b, "is " +a,"."); } else{ console.log("The larger number of " +a, "and " +b, "is " +b,"."); } } largerNum(5,12); // 直接调用,不再套console.log
方案二:让函数返回结果,外层统一输出
把函数改成返回字符串,然后由外层的console.log负责打印,这种方式更符合“单一职责”的编程习惯,还能用模板字符串让代码更简洁:
function largerNum(a, b) { if (a > b) { return `The larger number of ${a} and ${b} is ${a}.`; } else { return `The larger number of ${a} and ${b} is ${b}.`; } } console.log(largerNum(5, 12)); // 外层打印函数返回的字符串
内容的提问来源于stack exchange,提问作者zoey
相关产品推荐
相关产品推荐

