如何在控制台输出变量totalCost?运行代码时出现错误
解决你的控制台输出问题:修正代码中的执行顺序与作用域错误
嘿,我一眼就看到你代码里的几个小问题啦,这才导致totalCost没法正常输出,咱们一步步来改:
问题分析
- return语句提前终止函数:在
costOfMonitors函数里,你先写了return,这行代码会直接结束函数执行,后面定义totalCost的代码根本跑不到。 - 变量作用域不匹配:就算
totalCost能被定义,它也是函数内部的局部变量,外面的console.log根本访问不到它。 - 错误的自调用:你在
costOfMonitors内部调用了它自己,这会触发无限递归,逻辑上也完全没必要。
修正后的代码
function monitorCount(rows, columns) { return rows * columns; } function costOfMonitors(rows, columns){ // 先计算显示器总数 const numberOfMonitors = monitorCount(rows, columns); // 再返回总成本 return numberOfMonitors * 200; } // 在函数外部调用计算逻辑,把结果赋值给可被访问的变量 const totalCost = costOfMonitors(5, 4); // 输出到控制台 console.log(totalCost); // 会输出4000
修正说明
- 调整了
costOfMonitors函数的执行顺序:先计算显示器数量,再返回总成本,确保所有逻辑都能执行。 - 将
totalCost的定义移到函数外部:这样变量处于当前可访问的作用域中,console.log可以正常读取它的值。 - 移除了函数内部的自调用:避免不必要的递归错误,改为在外部合理调用函数来获取结果。
内容的提问来源于stack exchange,提问作者Vinny Sebastian
相关产品推荐
相关产品推荐

