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

📅 2026/7/8 13:42:37 👁️ 阅读次数 📝 编程学习
看完这篇,你就知道为什么Vue、React都偏爱函数表达式了!

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

我问:"什么问题?"

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

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

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

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

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

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

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

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

第一位演员——函数声明

函数声明长这样:

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

调用:add(1, 2);

输出:3

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

什么叫函数提升?

来看代码。

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

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