为什么我的幻灯片中出现只读错误?

Joy*_*mma -1 html javascript syntax-error readonly ecmascript-6

我的网站上有一个小滑块,它始终运行良好,但现在出现此错误:

语法错误:“myIndex”是只读的

这是我的 JavaScript 代码:

const myIndex = 0;
carousel();

function carousel() {
 let i;
 const x = document.getElementsByClassName(`slides`);
 for (i = 0;i < x.length;i ++) {
 x[i].style.display = `none`;
 }

 myIndex ++;

 if (myIndex > x.length) {
  myIndex = 1;
 }

 x[myIndex - 1].style.display = `block`;
 setTimeout(carousel, 4000); // Change image every 2 seconds
}
Run Code Online (Sandbox Code Playgroud)

这是 html:

<div class="home-slider">
  <img class="slides" src="assets/img/slide_1.jpg" alt="slide1">
  <img class="slides" src="assets/img/slide_2.jpg" alt="slide2">
  <img class="slides" src="assets/img/slide_3.jpg" alt="slide3">
</div>
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Jam*_*lly 5

myIndexconst语句定义。const创建一个常量;也就是说,在首次初始化后无法更改的值。

执行时抛出错误myIndex ++,它试图增加存储的值。

而不是const,使用letvar

let myIndex = 0;
Run Code Online (Sandbox Code Playgroud)

常量是块作用域的,很像使用 let 语句定义的变量。常量的值不能通过重新赋值而改变,也不能重新声明。

MDN 的const文档