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

JS中do块内let声明的变量在while判断时报未定义错误如何解决

报错原因

let声明的变量具有块级作用域,仅在声明所在的{}代码块内部可访问。你把Mistake变量声明在了do{ }的代码块内部,while(判断条件)的位置处于该代码块外部,自然无法访问到块内声明的Mistake变量,就会抛出未定义错误。

修复方案

只需要把Mistake变量的声明移到do-while循环的外层,和循环同级的作用域即可,修改后的代码如下:

function CheckError()
{
   let Mistake = false; // 移到do块外声明
   do
   {
     Mistake = false; // 每次循环开始重置为false
        
     let Number = prompt("Choose a number between 1 - 4");
     Number = parseInt(Number);

     if(Number < 1 || Number > 4)
     {
        Mistake = true;
      }
   }while(Mistake == true);
}

CheckError();

内容的提问来源于stack exchange,提问作者javi-ur96

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:15:03