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

请教JavaScript代码中参数作用及购奶数量计算逻辑

代码疑问解答

关于startingMoney和startingAmount的作用

  • 这两个都是函数的参数名,本质就是用来接收调用函数时传入的「初始金额」,只是在不同函数里起了不同名字:
    • calcBottles里的startingMoney:接收手头的总钱数(比如例子里的6),专门用来计算能买多少瓶牛奶
    • calcChange里的startingAmount:同样接收总钱数,用来计算买完牛奶后剩下的零钱
  • 简单说:就像你给不同的人递钱,给卖奶的和找零的描述的都是自己的总钱数,只是换了个称呼而已。你要是把这俩名字改成一样的(比如都叫totalMoney),代码功能完全不受影响。

购奶数量的计算逻辑

看calcBottles函数里的核心代码:

var numberOfBottles = Math.floor(startingMoney / costPerBottle);

拆解一下:

  • startingMoney / costPerBottle:用总钱数除以每瓶牛奶的单价,得到理论上的购买数量(比如6元买2元一瓶的,6/2=3)
  • Math.floor():这个方法是向下取整,意思是不管小数部分是多少,都只取整数部分。比如你有7元,每瓶2元,7/2=3.5,Math.floor(3.5)会得到3——因为没法买半瓶牛奶,所以最多只能买3瓶。

补充:代码完整运行流程

当执行getMilk(6, 2)时:

  1. 先调用calcBottles(6,2),算出能买3瓶,打印"buy 3 bottles of milk"
  2. 再调用calcChange(6,2),用取余运算6%2得到0(也就是没有零钱),把0返回给getMilk
  3. 最后console.log把返回的0拼进字符串,打印"Hello master, here is your 0 change"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:10:49