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

为什么JS函数内前两个变量为undefined而第三个变量已定义?

问题根因

核心是自定义函数的返回值逻辑错误:

  • 你定义的getRandomNum函数仅打印了生成的随机数,没有写return语句返回计算结果。JS中所有没有显式写返回值的函数,执行后默认返回undefined。
  • 执行deal函数时,你把firstCard、secondCard两个变量重新赋值为getRandomNum()的返回值,自然这两个变量就变成了undefined。
  • dealButton变量从初始化后没有被修改过,一直存储着获取到的按钮DOM对象,所以打印时显示已定义。
修复方法

给getRandomNum函数添加返回语句即可,修改后的代码如下:

// 生成1-11范围内的随机数
function getRandomNum() {
  let ranNum = Math.floor(Math.random() * 11) + 1;
  console.log(ranNum);
  return ranNum; // 新增返回语句
}

如果你的业务需求是要把随机数渲染到对应的p标签中,那deal函数的赋值逻辑也需要对应调整,示例如下:

function deal() {
  // 把随机数赋值给卡片对应的DOM节点的文本内容
  firstCard.textContent = getRandomNum();
  secondCard.textContent = getRandomNum();

  console.log(firstCard.textContent); 
  console.log(secondCard.textContent);
  console.log(dealButton);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:00:01