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 的差異

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

查看所有标签

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

响应式Web设计实践

响应式Web设计实践

[美] Tim Kadlec / 侯鸿儒 / 人民邮电出版社 / 2013-3-1 / 55.00元

随着各种各样的移动设备不断地涌现到使用者面前,Web设计的适应性已经成为设计师们所面临的最为艰巨的挑战。你设计出的网站不仅要在桌面计算机的大尺寸屏幕上可以为用户提供友好的UI和用户体验,同时在小尺寸屏幕上也应该可以提供一致的用户体验,并可以让用户能够在桌面大屏幕上和移动小屏幕上平滑切换,同时没有任何的不适应感觉。 本书作者是一位出色的开发者,在本书中,他将诸多技术和设计理念杂糅在一起,再辅以......一起来看看 《响应式Web设计实践》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具