Function Declaration 與 Function Expression 的差異

栏目: JavaScript · 发布时间: 7年前

内容简介:Function Declaration 與 Function Expression 寫法看似相等,但 Function Declaration 會 Hoisting,而 Function Expression 不會。ECMAScript 5ECMAScript 2015

Function Declaration 與 Function Expression 寫法看似相等,但 Function Declaration 會 Hoisting,而 Function Expression 不會。

Version

ECMAScript 5

ECMAScript 2015

Function Declaration

console.log(sum(1, 2));

function sum(x, y) {
  return x + y;
}

使用 Function Declaration 定義 sum() ,雖然定義在 console.log() 下方,但依然能夠執行。

Function Declaration 與 Function Expression 的差異

Function Expression

console.log(sum(1, 2));

const sum = (x, y) => x + y;

sum() 改用 Function Expression 方式,看起來完全一樣,但卻無法執行。

Function Declaration 與 Function Expression 的差異

Why ?

原因在於 Function Declaration 會 Hoisting,所以儘管 sum() 定義在 console.log() 之後,但執行前會先 Hoisting 到最前面,所以仍然可以正常執行。

但 Function Expression 則不會 Hoisting,所以 sum() 必須定義在 console.log() 之前才能執行。

Conclusion

  • Function Declaration 看似與 Function Expression 一樣,都是定義 function,但卻有 Hoisting 的差異

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

马云:未来已来

马云:未来已来

阿里巴巴集团 / 红旗出版社 / 2017-4-1 / CNY 49.00

阿里巴巴集团:全球主要的互联网公司之一,由马云带领其他17个创始人,于1999年在中国杭州创立。阿里巴巴集团经营多元化的互联网业务,以“让天下没有难做的生意”为使命,致力于为创业者和消费者提供全球化的商业平台,打造开放、协同、繁荣的电子商务生态系统。自成立以来,阿里巴巴集团建立了领先的消费者电子商务、网上支付、B2B网上交易市场及云计算业务,并积极开拓无线应用、手机操作系统和互联网电视等领域。一起来看看 《马云:未来已来》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具