You need to enable JavaScript to run this app. 解释弹窗输出hello的JS箭头函数的运行逻辑与所属类型
优惠活动
大模型
产品
解决方案
定价
更多

解释弹窗输出hello的JS箭头函数的运行逻辑与所属类型

对应JavaScript代码运行原理与类型说明

首先附上可直接运行的原始代码:

let a = () => {
  return ((b) => alert(b))("hello");
};
a();

代码涉及的函数类型

  • 赋值给变量a的外层函数:是无入参的ES6箭头函数,这类函数没有独立的this指向、不绑定自身的arguments类数组,也不能通过new关键字实例化。
  • 外层函数return语句内的(b) => alert(b):是单入参的ES6箭头函数,同时属于典型的立即执行函数(IIFE)——函数定义完成后不单独保存引用,立刻传入参数完成调用。

完整运行工作流

  1. 脚本自上而下执行时,首先通过let声明变量a,把外层箭头函数的内存引用绑定到a上,此阶段外层函数仅完成定义,不会执行内部逻辑。
  2. 脚本执行到最后一行a()时,通过绑定的函数引用触发外层箭头函数调用,进入外层函数的独立执行上下文。
  3. 外层函数运行到return语句时,先在当前作用域内完成内层箭头函数的定义:该函数接收一个形参b,函数体逻辑为调用浏览器全局弹窗方法alert展示传入的参数值。
  4. 内层函数定义完成后,紧随其后的("hello")会立刻把字符串"hello"作为实参传入内层函数完成调用,全程没有为内层函数单独创建变量存储引用。
  5. 内层函数执行时,把形参b的实际值替换为传入的"hello",运行alert("hello")逻辑,弹出系统原生的hello提示框。
  6. 内层函数执行完成后会返回undefined,这个值会顺着外层函数的return语句向外传递,外层函数执行完毕,整个脚本流程结束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 12:45:07