上一章节我们学习了有关JS对象的知识,现在我们对JS的简单操作已经有了基本的了解,学会了简单的编码行为。本章我们将学习在JS中较为重要的一个概念——函数。

那什么是函数呢?简单来说,函数就是一段可复用的代码块,它将实现特定功能的代码封装起来,当我们需要实现该功能时,直接调用函数即可。

在JS中,我们一般用 function 关键字来定义函数:

function 函数名(参数1, 参数2, ...) {
  // 函数体,包含要执行的代码块
  // 可以使用参数进行计算、控制流程等操作
  return 返回值; // 可选,用于返回函数调用结果
}

在这里,我们先定义函数名并记住它,因为后续我们是通过函数名来调用函数的。在JS里,函数名是函数的唯一标识符,读者务必知道JS中的函数不像C/C++、Java那些编译型语言一样有重载函数。

然后我们再设计参数,参数可以是一个或多个,参数既能参与运算也可以不参与;接着设计函数体,函数体可以是复杂的算法,也可以是简单的运算;最后决定是否需要返回值,需要就使用return,不需要也可以。

如果我们想要设计一个计算两数和的函数,可以这样做:

/* 使用function关键字声明函数 */
function add(a, b) {
  return a + b;
}
console.log(add(0, 1)); // 控制台打印 1

在JS里,函数是可以同名的,但由于函数提升(JavaScript引擎会在编译阶段把函数声明提升到作用域顶部),同名函数会发生覆盖行为:

/* 函数提升导致函数覆盖,最终控制台打印1 */
function f() {
  console.log(0);
}
function f() { // 这个覆盖了前一个f
  console.log(1);
}
f(); // 输出 1

请读者务必记住,JS里不存在重载函数:

/* JS里不存在重载函数 */
function f() {
  console.log(0);
}
function f(a) { // 完全覆盖了前一个f
  console.log(1);
}
f();   // 输出 1(实际上调用的是f(a),a为undefined)
f(0);  // 输出 1

值得注意的是,在JS里,函数名是严格区分大小写的:

/* JS中函数名严格区分大小写 */
function F() { // 大写F
  console.log(0);
}
function f() { // 小写f  
  console.log(0);
}
f(); // 控制台打印 0
F(); // 控制台打印 0

总结:本节我们学习了在JS中如何定义函数,理解了函数名是函数的唯一标识符,以及JS中不存在重载函数的概念。读者务必掌握这些函数的基本概念,这对后续JS的学习很重要。

点赞(88)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)