函数控制台调用可返回值,脚本内调用无返回问题排查
搞定sumArray函数直接调用时没返回值输出的问题
嘿,先给你吃颗定心丸——你的代码逻辑完全没问题!sumArray里先打印总和再返回,外层console.log(sumArray(numsA))本来就该输出两次72:一次是函数内部的打印,一次是外层打印返回值。你只看到一次,大概率是控制台的“小把戏”或者环境问题,我给你捋捋排查方向:
- 控制台自动合并了相同输出:Chrome这类浏览器的控制台会默认把重复的输出折叠起来,你看看那个72旁边是不是有个小箭头?点一下展开,应该就能看到两个72了。
- Live Server的缓存坑:有时候Live Server会偷懒用旧代码,你试试这几招:
- 按住
Ctrl+Shift+R强制刷新浏览器,清空缓存 - 关掉VS Code里的Live Server再重新启动
- 看看VS Code的终端有没有报错,确认脚本是不是完整加载了
- 按住
- 有没有被其他代码覆盖?:虽然你试过改
sum的作用域,但如果页面里还有其他脚本,万一有重名的sumArray函数,就会把你的覆盖掉。你可以在调用前加一行console.log(sumArray),看看输出的是不是你写的那个函数代码,确认没被篡改。
另外,你可以改个小测试代码,给两次打印加个标识,就不会搞混了:
let numsA = [1, 10, 13, 5, 2, 1, 9, 8, 23]; let numsB = [15, 18, 5, 23, 55, 2, 9, 15, 15]; function sumArray(arr) { let sum = 0; for (let i = 0; i < arr.length; i++) { sum += arr[i]; } console.log('函数内部打印:', sum); // 加个标识区分 return sum; } console.log('外层调用返回值:', sumArray(numsA)); // 再加个标识
这样两次输出会明确区分,就算控制台想合并也没办法啦。
要是上面的方法都试过还不行,你去控制台的设置(那个齿轮图标)里找找“Group similar messages”选项,把它关掉,重复内容就会分开显示了。
内容的提问来源于stack exchange,提问作者Andre
相关产品推荐
相关产品推荐

