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

为什么我的JavaScript脚本未执行到第三个DOM赋值语句就卡住?

问题原因

  • 核心问题是代码中使用的aR变量未提前定义,执行到for循环的条件i < aR.length时,会直接抛出Uncaught ReferenceError: aR is not defined的引用错误,导致JS脚本执行直接中断,因此后续给content-3赋值的语句永远不会被执行。

修复方案

首先确保aR变量已正确初始化,也可以额外添加变量存在性判断逻辑,避免因变量未定义导致脚本中断,参考修复后的完整代码:

<div id="content-1"></div>
<div id="content-2"></div>
<div id="content-3"></div>

<script type="text/javascript">
    // Write HTML with JS
    document.getElementById("content-1").innerHTML = '<h1>Title</h1>...and more';
    document.getElementById("content-2").innerHTML = 'hello';

    let value = '';
    // 初始化符合结构的aR变量,若aR是外部传入可直接保留下面的判断逻辑
    const aR = [
        {name: '商品1', price: '100元'},
        {name: '商品2', price: '200元'}
    ];
    // 增加数组类型判断,避免变量未定义或非数组类型导致报错
    if(Array.isArray(aR)){
        for(let i = 0; i < aR.length; i++){
            value += aR[i]['name'] + ": " + aR[i]['price'] + "<br/>";
        }
    }
    // 优先使用拼接后的value,空值时兜底显示hi!
    document.getElementById("content-3").innerHTML = value || 'hi!';
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:54:04