这段JavaScript代码是否正确?为何运行后会导致浏览器崩溃
代码问题与崩溃原因说明
你的代码存在逻辑错误,不是可正常运行的正确代码,浏览器崩溃的核心原因是触发了无终止的死循环,具体问题如下:
- 你仅在进入循环前执行了一次
prompt()采集用户输入,items变量的取值在循环内部没有任何更新逻辑,你写在循环体内的items;是无实际作用的空表达式,不会触发新的输入采集。 while(true)本身是无限循环结构,仅当items === "STOP"条件成立时才会跳出循环。只要你首次输入的内容不是STOP,这个终止条件永远不会成立,代码会持续占用浏览器JS主线程无限空转,导致页面无法响应任何交互,最终触发浏览器的无响应/崩溃拦截机制。
修正后参考代码
//coding practice let itemList = []; while (true) { const items = prompt("请输入内容,输入STOP结束采集"); if (items === "STOP") { break; } itemList.push(items); } console.log(itemList);
修正说明:
- 把输入采集逻辑放到循环内部,每次循环都会发起新的输入请求
- 用数组承接每次有效输入,不会丢失非STOP的输入内容
- 循环终止条件可正常触发,不会出现死循环问题
内容的提问来源于stack exchange,提问作者TechBoat
相关产品推荐
相关产品推荐

