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

为什么JS代码中validate函数内的第二个console.log未被执行?

问题原因

核心是const声明的常量不允许重新赋值,代码执行到赋值语句时直接抛出异常,中断了后续逻辑运行:

  • 你代码开头用const setError = ""声明了常量,const用于声明不可修改的常量,针对字符串这类原始类型值,一旦声明后尝试重新赋值就会抛出TypeError: Assignment to constant variable.错误
  • 正则校验结果exp为false,会进入if (!exp)分支执行setError = "Email Not Valid!",这一行直接抛出异常,后续的第二个console.log自然不会执行
  • Promise执行器内部抛出的未捕获错误会自动将Promise标记为拒绝状态,所以会直接触发catch回调输出Rejected,浏览器/Node控制台还会同时输出对应的类型错误,只是你没有贴出这部分输出。

修复方案

把最开头的const setError = ""改为let setError = ""即可,let声明的变量允许重新赋值,修改后你就能看到第二个console.log的输出了。

内容的提问来源于stack exchange,提问作者Santam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:48:01