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

JavaScript高阶函数repeat及unless判断数字奇偶的运行逻辑疑问

问题1:代码中高阶函数的运行逻辑

这段代码里的repeat和unless都属于高阶函数(接收函数作为参数的函数都属于高阶函数),具体执行流程按顺序拆解:

  • 第一步定义repeat函数:接收两个参数,第一个是循环次数n,第二个是每次循环要执行的函数action,内部通过for循环执行n次action,每次把当前循环索引i传给action作为入参。
  • 第二步定义unless函数:接收两个参数,第一个是判断条件test,第二个是条件匹配时要执行的函数then,内部逻辑为如果test的布尔值为假,就执行then函数。
  • 第三步调用repeat(3, 回调函数)触发完整执行流:
    1. 第一次循环,索引为0,将0传给回调的入参n,执行unless(0%2 == 1, 打印函数):此时0%2 == 1的结果为false,触发then执行,打印0 is even
    2. 第二次循环,索引为1,将1传给入参n,执行unless(1%2 == 1, 打印函数):此时1%2 == 1的结果为true,不触发then执行,无输出
    3. 第三次循环,索引为2,将2传给入参n,执行unless(2%2 == 1, 打印函数):此时2%2 == 1的结果为false,触发then执行,打印2 is even
问题2:奇偶判断逻辑

代码使用取模运算符%实现奇偶判断:

  • 取模运算符的作用是求两个数相除的余数,任意整数和2取余,结果只会是0或者1
  • 如果n % 2 == 1成立,说明该数除以2余1,是奇数
  • 如果n % 2 == 1不成立,说明该数除以2余0,是偶数,对应代码里就会触发偶数的打印逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:04