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

如何在三元运算中用函数设置值?取款逻辑代码异常求助

问题分析与解决

问题根源

你写的代码里,三元运算符的else分支是把函数本身赋值给了newWithdrawTotal,根本没执行这个函数。所以当newWithdrawAmount > previousBalanceTotal时,newWithdrawTotal变成了一个函数对象,既弹不出提示框,也不会返回预期的数值。

修复方案

给你两种简单的修复方式:

方式一:立即执行else分支的函数

在函数定义末尾加(),让它立刻执行,这样就能触发弹窗并返回正确值:

const newWithdrawTotal = (newWithdrawAmount < previousBalanceTotal) 
  ? (newWithdrawAmount + previousWithdrawTotal) 
  : (function () {
      console.log(previousWithdrawTotal);
      alert('你不能取出超过账户余额的金额');
      return previousWithdrawTotal;
    })(); // 加()让函数立即执行
console.log(newWithdrawTotal);

方式二:去掉冗余函数,直接写逻辑

其实没必要用函数包裹,改用if-else语句更直观,代码可读性也更高:

let newWithdrawTotal; // 因为要根据条件赋值,改用let声明
if (newWithdrawAmount < previousBalanceTotal) {
  newWithdrawTotal = newWithdrawAmount + previousWithdrawTotal;
} else {
  console.log(previousWithdrawTotal);
  alert('你不能取出超过账户余额的金额');
  newWithdrawTotal = previousWithdrawTotal;
}
console.log(newWithdrawTotal);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:30:59