Js,有不有大神知道为什么无法获取style属性?

图片说明
我想要点击换颜色,但这么写就显示无法获取未定义或空引用的属性“style”

  • 但是这么写却可以,为什么啊,不是一样的吗?
  • 图片说明

因为btns[i]的这个i永远都是等于btns.length,很不巧的是下标是从0开始的,也就是说你的btns最大的下标是4,而你数组的长度是5,你上面的写法翻译过来就是btns[5].style.backgroundColor = 'aqua',当然是找不到的

dom操作导致的重新渲染是异步的,同步任务执行完后,才会执行异步,那时候你的i已经不是想要的值了