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

JS贪吃蛇代码运行报Cannot read property 'style' of undefined错误

报错根因分析

你遇到的Uncaught TypeError: Cannot read property 'style' of undefined报错,本质是尝试访问undefined对象的style属性,触发该问题有两个直接原因:

  • for循环边界设置错误:你当前的snake数组长度为5,下标范围是0~4,但循环条件写的是x<=snake.length,当x等于5时,snake[5]返回undefined,nodeArray[undefined]自然也是undefined,调用style属性就会触发报错。
  • nodeArray放在函数内时的执行时机问题:document.getElementsByClassName是实时获取DOM节点的API,如果你调用snakeMake函数时,类名为node的DOM节点还没渲染挂载到页面上,获取到的nodeArray就是空集合,访问对应下标的元素也会返回undefined。
修复方案
  1. 修正for循环的边界条件,把x<=snake.length改为x<snake.length
  2. 如果要把nodeArray放到函数内,要保证调用snakeMake函数时,所有node节点已经完成DOM渲染
修正后代码示例
// 创建蛇身坐标数组
let snake=[12,13,14,15,16]

snakeMake()

function snakeMake(){
    // 移到函数内时,需保证此时所有node节点已渲染到页面
    const nodeArray=document.getElementsByClassName("node")
    // 修正循环边界
    for (let x=0;x<snake.length;x++){
        nodeArray[snake[x]].style.backgroundColor="white"  
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:48:02