You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript编写学生成绩计算程序输出undefined问题求助

问题原因
  • 未执行成绩计算逻辑:你定义了accumulatedGrades()函数用于统计成绩总和,但代码运行全程没有调用过该函数,全局变量sum始终保持初始值0,直接计算平均值无法得到正确结果。
  • document.write()用法错误:document.write()的作用是直接向当前文档流写入内容,本身没有返回值,将它的执行结果赋值给元素的innerHTML属性,拿到的就是undefined。如果是在页面DOM加载完成后调用document.write,还会清空整个已加载的页面内容,导致页面无任何内容显示。
  • 隐性问题:循环中的index变量没有用var/let/const声明,会隐式注册为全局变量,容易造成变量污染。
修复方案

调整后的JS代码如下:

var grades = [80, 87, 94, 82, 62, 98, 81, 81, 74, 91];
var sum = 0;

function accumulatedGrades(){
    sum = 0; // 每次调用前重置总和,避免重复调用时数值累加出错
    for (let index = 0; index < grades.length; index++){
        sum += grades[index];
    }
    return sum / grades.length;
}

function tests(){
    // 先调用计算函数获取平均分,直接赋值给目标元素即可
    const averageScore = accumulatedGrades();
    document.getElementById('average').innerHTML = averageScore;
}

HTML代码无需修改,原有逻辑即可正常运行。

内容的提问来源于stack exchange,提问作者Darlisa Cardiff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:45:03