Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在本地分配变量时不执行代码_Javascript_Html - Fatal编程技术网

Javascript 在本地分配变量时不执行代码

Javascript 在本地分配变量时不执行代码,javascript,html,Javascript,Html,当变量index在函数中赋值时,此处给出的JavaScript代码不起作用。 当在本地分配时,它只返回对话数组中的第一个索引 但是当变量index被全局分配时,代码将遍历数组中的元素 你能解释一下这背后的原因吗? 是否需要在函数外部指定变量 let board=document.getElementById(“board”); 让对话=[ "1", "2", "3", "4", "5", "6" ]; board.addEventListener(“单击”,()=>{ 设指数=0; 如果(索引

当变量
index
在函数中赋值时,此处给出的JavaScript代码不起作用。 当在本地分配时,它只返回
对话
数组中的第一个索引

但是当变量
index
被全局分配时,代码将遍历数组中的元素

你能解释一下这背后的原因吗? 是否需要在函数外部指定变量

let board=document.getElementById(“board”);
让对话=[
"1",
"2",
"3",
"4",
"5",
"6"
];
board.addEventListener(“单击”,()=>{
设指数=0;
如果(索引<对话长度){
警报(对话[索引]);
索引++;
}        
否则{
指数=0;
}            
})
正文{
高度:100vh;
保证金:0;
显示器:flex;
弯曲方向:立柱;
对齐项目:居中;
证明内容:中心;
间隙:50px;
背景色:#2b0000;
字体系列:roboto;
}
.董事会{
显示:网格;
证明内容:中心;
对齐内容:居中对齐;
网格模板列:重复(3,自动);
栅隙:20px;
}
.细胞{
宽度:100px;
高度:100px;
边界半径:100%;
背景色:透明;
边框:10px纯白;
投影:6px 8px 5px#fff;
过渡时间:1000ms;
}

如果在onclick函数中声明索引变量,则每次单击时都会声明一个新的索引变量,一旦函数结束,该变量将被遗忘。JavaScript变量只在您声明的范围内工作,因此如果您在函数中声明索引,一旦函数结束,它将被删除

否则,如果全局声明它,将始终存在相同的变量,并且它将在每次调用on click函数之间保存值


希望我能帮上忙

原因是这一行:
let index=0因为每次单击时,
索引
都用
0
初始化。。然后,
对话的长度总是大于
0
。。。然后
alert(对话[0])。。。永远。。。