返回

《JavaScript 高级程序设计》第十章 函数 学习记录

前端

一、函数的概念

函数是 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 方法来改变函数的执行上下文。