Logo
Section 1 / 5

JavaScript 中的函数声明

JavaScript 函数的简要介绍,以及在 JavaScript 中声明函数的多种方式,还有一些相关概念。

导入

JavaScript 中的函数声明

JavaScript 函数的简要介绍,以及在 JavaScript 中声明函数的多种方式,还有一些相关概念。

函数是一段仅定义一次但可以被调用无数次的代码。JavaScript 函数由多个影响其行为的组件构成。一个典型的 JavaScript 函数包含以下部分:

  • function 关键字
  • 函数名
  • 参数
  • 返回值
  • 上下文 this

你知道吗? 在 JavaScript 中,函数实际上就是对象。和普通对象一样,它们也有属性和方法。唯一让它们与对象不同的地方在于,它们可以被调用。

命名函数和匿名函数的区别是什么?

两者的唯一区别是:匿名函数 没有正式名称,通常在运行时被赋值给变量或作为参数直接传递。之所以称为“匿名”,是因为它们在编译前没有被赋予正式名称。在 JavaScript 中声明函数的一种常见方式如下:

1function myFunction() { 2 console.log("Hello! 我是一个命名函数!"); 3} 4 5myFunction();

以下是动态声明匿名函数的方式:

1var myFunction = function() { 2 console.log("Hello! 我是一个匿名函数"); 3}; 4 5myFunction();

声明 JavaScript 函数的多种方式

在 JavaScript 中,有多种方式来声明函数。最常见的两种方式是使用函数声明或函数表达式。在函数声明中,function 关键字出现在函数名之前;而当 function 关键字出现在其他位置时,表示我们使用的是函数表达式的方法。以下是 JavaScript 中用于声明函数的六种不同方法:

  • 函数声明
  • 函数表达式
  • 生成器函数
  • 生成器函数表达式
  • 箭头函数
  • 函数构造器

这些声明类型决定了函数如何与其外部环境(如外部作用域、上下文以及拥有它的对象)进行交互。下表总结了所有类型、语法及适用场景:

名称说明语法
函数声明这是 JavaScript 中最常用的函数声明方式。使用此方法声明的函数支持提升,即可以在声明之前调用。function function_name(Arg1, Arg2..){}
函数表达式最常用的形式之一。特别适合将函数赋值给变量,常用于作为回调函数使用。命名:var var_name = function function_name(Arg1, Arg2..){};
匿名:var var_name = function(Arg1, Arg2..){};
生成器函数声明用于声明生成器函数,这类函数使用 yield 关键字返回一个生成器迭代器对象,后续可调用 next 方法。function* name(Arg1, Arg2..) {}
生成器函数表达式与上述类型非常相似,唯一的区别是函数名可以省略。命名:function* function_name(Arg1, Arg2..){}
匿名:function* (Arg1, Arg2..){}
箭头函数ES6 引入箭头函数的两个主要原因是:简化函数表达式的语法,并解决 this 的绑定问题。如果只有一个参数,可以省略括号;如果函数体只有一条语句,可以省略大括号。var var_name = (Arg1, Arg2..) => {};
函数构造器这是最不推荐的函数声明方式。Function 实际上是一个构造函数,用于创建新函数。传给构造函数的参数成为新函数的参数,最后一个参数是一个字符串,会被转换为函数体。这种方式可能带来安全风险和性能优化问题,因此绝不建议使用。var var_name = new Function(Arg1, Arg2.., 'FunctionBodyString');

编程挑战:编写一个 JavaScript 函数表达式

请将给出的 cube() 函数重写为“函数表达式”的形式。可以是命名的也可以是匿名的,但请确保将变量命名为 cube,否则代码无法通过编译。

1// 在此处添加你的函数表达式 2function cube(n) { 3}

关于函数的内容就介绍到这里!在下一课中,我们将深入探讨箭头函数,并了解它们在 React 中能实现哪些功能。

变量、运算符与表达式

React 中的箭头函数