《JavaScript 高级程序设计》第十章 函数 学习记录
2024-02-01 15:26:15
一、函数的概念
函数是 JavaScript 中的基本构建块,可以复用代码,提高程序的可读性和可维护性。函数可以作为值传递,也可以作为参数传递,还可以嵌套使用。函数有自己的作用域,变量和参数在函数内部是局部变量,在函数外部是全局变量。函数还可以通过闭包来访问外部变量。
二、函数的定义
JavaScript 中的函数有函数声明、函数表达式和箭头函数三种定义方式。
1. 函数声明
函数声明是最传统、最常用的函数定义方式。函数声明的语法如下:
function function_name(parameter1, parameter2, ...) {
// 函数体
}
例如:
function sum(a, b) {
return a + b;
}
2. 函数表达式
函数表达式是一种匿名函数,它没有函数名,只能作为值传递或作为参数传递。函数表达式的语法如下:
(parameter1, parameter2, ...) => {
// 函数体
}
例如:
const sum = (a, b) => {
return a + b;
};
3. 箭头函数
箭头函数是 ES6 中引入的新语法,它是一种更简洁的函数表达式。箭头函数的语法如下:
(parameter1, parameter2, ...) => expression
例如:
const sum = (a, b) => a + b;
三、函数的调用
函数的调用方式有直接调用、间接调用和构造函数调用三种。
1. 直接调用
直接调用是最简单、最常用的函数调用方式。直接调用的语法如下:
function_name(argument1, argument2, ...);
例如:
sum(1, 2);
2. 间接调用
间接调用是指通过变量或属性来调用函数。间接调用的语法如下:
variable_name(argument1, argument2, ...);
例如:
const func = sum;
func(1, 2);
3. 构造函数调用
构造函数调用是指使用 new 来调用函数。构造函数调用的语法如下:
new function_name(argument1, argument2, ...);
例如:
const person = new Person('John', 'Doe');
四、函数的作用域
函数有自己的作用域,变量和参数在函数内部是局部变量,在函数外部是全局变量。局部变量只能在函数内部访问,全局变量可以在函数内部和外部访问。
五、函数的闭包
闭包是指函数可以访问其定义时所在的词法作用域中的变量。闭包可以用来访问外部变量,也可以用来实现私有变量。
六、函数的属性和方法
函数实际上是对象,每个函数都是 Function 类型的实例,Function 也有属性和方法,和其他的引用类型一样。
七、总结
函数是 JavaScript 中的基本构建块,可以复用代码,提高程序的可读性和可维护性。函数可以作为值传递,也可以作为参数传递,还可以嵌套使用。函数有自己的作用域,变量和参数在函数内部是局部变量,在函数外部是全局变量。函数还可以通过闭包来访问外部变量。JavaScript 中的函数有函数声明、函数表达式和箭头函数三种定义方式。函数的调用方式有直接调用、间接调用和构造函数调用三种。函数还可以通过 call、apply 和 bind 方法来改变函数的执行上下文。