【JS02】函数表达式和函数声明有什么区别?

分享人:宜康

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

我们都知道函数使用FUNCTION关键字来定义,它可以用在函数定义表达式或者函数声明语句中。在这两种形式中,函数定义都从FUNCTION关键字开始。
而关于这两者之间的区别,我们似乎很少去研究,所以这次我们就一起在小课堂中学习一下吧。

2.知识剖析

什么是函数声明?

1、函数声明语句的语法:知识剖析中 DEMO1 讲解演示。
2、
(1)以FUNCTION关键字定义。
(2)接下来是要声明的函数的名称的标识符。
(3)函数名之后的圆括号中是参数列表,有多个参数的话参数之间使用逗号分隔。
(4)函数体由JAVASCRIPT语句组成,数量不限,使用花括号包裹。
3、当调用函数时,这些标识符则指代传入函数的实参。

什么是函数表达式?

1、函数表达式:知识剖析中 DEMO2 讲解演示。
2、函数定义表达式定义了一个JAVASCRIPT函数,表达式的值是这个新定义的函数。
3、一个典型的函数定义表达式包含关键字FUNCTION,跟随其后的是一对圆括号,括号内定义形参以逗号分割,然后跟随一个花括号包裹的函数体。
3、函数直接量。

函数声明

DEMO1

函数表达式

DEMO2

3.常见问题

函数声明与函数表达式使用了相同的函数名之后是否相同?

函数声明与函数表达式有什么区别?

4.解决方案

1、函数声明中函数名是必须的;函数表达式中则是可选的。

2、即使函数声明语句和函数定义表达式包含相同的函数名,二者依然是不同的。

3、使用函数表达式的话,只有变量声明提升了——变量的初始化代码仍然在原来的位置。

4、使用函数声明的话,函数名称和函数体都提升了,脚本中所有函数和函数中所有嵌套的函数都会在当前上下文中其他代码之前声明。也就是说,可以在函数声明之前调用它。

5.编码实战

DEMO3 讲解演示

6.扩展思考

作用域与作用域链、闭包、高阶函数

7.参考文献

1、《JAVASCRIPT权威指南》

2、函数:声明和表达式

3、函数——函数的两种声明方式:函数声明&函数表达式的区别

8.更多讨论

鸣谢

感谢大家观看

Contact GitHub API Training Shop Blog About © 2016 GitHub, Inc. Terms Privacy Security Status He