黄子涵

2.4 函数基础

2.4.1 函数的定义

函数是由一连串的子程序(语句的集合)所组成的,可以被外部程序调用。向函数传递参数之后,函数可以返回一定的值。

console.log("1");
function hzh() {       // 声明函数
    console.log("2");
}
console.log("3");      // 调用函数
hzh();

image

2.4.2 函数的声明与调用

可以通过函数声明语句来定义一个函数。函数声明语句以关键字function开始,其后跟有函数名、参数列表和函数体。其语法如下所示:
image

// 函数名为sum,参数名为a和b
// 函数声明中所写的参数称为形参(形式参数)
function huangzihan (a,b) {
    return Number(a) + Number(b);
}

// 函数sum的调用
// 调用函数时,传递给函数的参数称为实参(实际参数)
console.log(huangzihan(3,4));

image

函数声明时不必指定形参的类型。任何类型的值都可以作为实参传递,因而开发者在设计函数时需要考虑接收错误类型的值的情况。此外,形参的数量和实参的数量可以不一致。所以,在JavaScript中不存在函数重载。

2.4.3 匿名函数

匿名函数的语法形式在function后跟可以省略的函数名、参数列表以及函数体。其语法如下所示:
image
函数声明语句和匿名函数表达式在语法上几乎一模一样,唯一的区别仅仅是能否省略函数名称。不过,因为匿名函数表达式是一种表达式而非语句,所以也可以在表达式内使用。另外由于它是表达式因此也会有返回值。匿名函数的返回值是一个 Function 对象的引用。把它简单理解为返回一个函数也没有问题。

// 赋值表达式右侧的就是匿名函数表达式。
var hzh = function (a, b) {
    return Number(a) + Number(b)
}

// hzh的前面是var,所以它是一个变量名
// 以function开始的匿名函数表达式将返回一个函数
// 那么我们来测试变量hzh是不是接收到一个函数

console.log("判断函数hzh是不是接收的是函数:" + typeof hzh);

// 上面那段代码的含义是,将Function对象的一个引用赋值给变量hzh
// 现在我们来调用变量hzh所引用的函数

console.log("调用变量hzh:" + hzh(3, 4));

image

2.4.4 函数是一种对象

avaScript 的函数是一种对象,不过并不是说所有的对象都是函数。函数是一种包含了可执行代码,并能够被其他代码调用的特殊的对象。

posted @ 2022-05-27 17:59  黄子涵  阅读(53)  评论(0编辑  收藏  举报