当前位置: 首页 > news >正文

看完这篇,你就知道为什么Vue、React都偏爱函数表达式了!

大家好,我是31岁的小米,上周,一个准备跳槽的小伙伴找到我,他说:"小米,我昨天面试的时候,面试官问了一个特别奇怪的问题。"

我问:"什么问题?"

他说:"JavaScript里面,函数声明和函数表达式有什么区别?"

他说自己当时回答:"一个是function,一个也是function……"

结果面试官笑了笑,没有继续问,出来以后,他越想越难受:"难道不是都一样吗?"

我笑了,很多人刚开始学习JavaScript的时候,觉得函数就是函数,无非就是写法不同,可是真正到了项目里,或者到了高级面试,这可是一个高频考点,今天,我们就通过一个故事,把这个知识点彻底搞懂。

有一天,王国里来了两位演员

假设有一个王国,国王准备举办一场演出。

  • 第一位演员叫:函数声明(Function Declaration)
  • 第二位演员叫:函数表达式(Function Expression)

两个人都会表演,但是进入皇宫的方法,却完全不同。

第一位演员——函数声明

函数声明长这样:

是不是特别熟悉?这里最重要的一点就是function开头,并且后面直接跟函数名,例如:

调用:add(1, 2);

输出:3

是不是很简单?但是它真正厉害的地方,并不是写法,而是它会被提升(Hoisting)。

什么叫函数提升?

来看代码。

很多Java程序员第一次看到这里都会惊讶:"不是还没写函数吗?"

为什么可以运行?因为JavaScript在执行之前,会先进行预处理,它相当

http://www.jsqmd.com/news/1148026/

相关文章:

  • 当Golang遇见LLM:构建高并发推理服务的工程实践
  • JetBrains Hub三连CVE实战修复教程:CVE-2026-56141/56142/50242账户接管漏洞检测脚本+DevOps全链路安全加固清单
  • 如何5分钟完成Beyond Compare 5激活:两种高效密钥生成方案
  • 高压隔离技术:ISOM8710与PIC18F86K90的安全设计
  • 如何让 AI 快速搭建一套生产级 Agent?全面理解 Agent 架构
  • AD7490与PIC18F4550构建高速数据采集系统
  • 5分钟创建专业图表:Mermaid Live Editor让可视化变得简单高效
  • AI前沿与软件主流差距巨大:Anthropic人均算力支出达200万美元,未来成本走向几何?
  • 面向高效多智能体协同的回报保持型通信遗忘
  • AI 初创公司无营收却靠分批融资获天价估值,背后隐秘套路几何?
  • 蓝奏云直链解析终极指南:3分钟获取稳定下载地址
  • ROS 参数服务器通信实战详解|参数服务增删改查完整代码实现(含运行终端输出 + 原理分析)
  • 485有线方案在酒店客控中的应用强电485混合架构设计
  • 2026年无锡干细胞机构如何考量?解析行业布局与合规焦点
  • Windows应急响应实战:从D盾依赖到全链路攻击痕迹排查指南
  • 全参数微调 vs 参数高效微调:何时选择何种方案?
  • J-space:Claude的意识起源,它已经注意到自己正在被测试了!
  • STM32与ADS1262实现高精度工业测量方案
  • 三种浮游生物监测方法的系统比较与适用性分析
  • 网络安全工程师需要考什么证吗?
  • 芯片dft覆盖率
  • SQL Server 分页查询性能对比:ROW_NUMBER vs OFFSET FETCH vs TOP 3方案实测
  • MCP3428与PIC32MZ高精度数据采集方案详解
  • 2026中小门店系统测评|百元预算全能好用,无隐形收费首选
  • 【技术深扒】当Physical AI遇上黎曼猜想——一条公理重构数学·物理·易理的《螺旋生成论》开源巨著(Zenodo 32部|附PDF)
  • 若依系统 Druid 监控 9 个默认路径探测与弱口令爆破实战
  • NBM5100A与PIC32MZ在低功耗设备中的电池管理方案
  • 【芯片测试中的Shmoo:一张图读懂芯片的体检报告】
  • BsMax:让3ds Max用户无缝过渡到Blender的终极解决方案
  • 医疗设备智能防漏费管控系统整体说明