返回

函数(1)阅读笔记:红宝书第四天

前端

今天我们来阅读《红宝书》第四天的内容——函数。

函数是 JavaScript 中最重要的概念之一,它允许我们定义一组可以被重复执行的代码块。我们可以使用函数来封装代码、组织代码并提高代码的可重用性。

函数声明

在 JavaScript 中,我们可以使用两种方法来声明函数:函数声明和函数表达式。

函数声明 使用以下语法:

function functionName(parameters) {
  // 函数体
}

函数表达式 使用以下语法:

const functionName = (parameters) => {
  // 函数体
};

箭头函数

箭头函数是 ES6 中引入的一种特殊类型的函数。它们使用以下语法:

const functionName = (parameters) => expression;

箭头函数与普通函数的主要区别在于:

  • 箭头函数没有自己的 this
  • 箭头函数不能使用 arguments 对象。
  • 箭头函数不能使用 super 关键字。

函数调用

要调用函数,我们只需使用函数名后跟括号,例如:

functionName();

我们可以向函数传递参数,这些参数将在函数体内作为局部变量使用。

函数作用域

函数的作用域是它可以访问的变量的集合。函数的作用域由其声明位置决定。在 JavaScript 中,函数的作用域要么是全局的,要么是局部(嵌套在另一个函数中)。

全局函数可以在脚本的任何地方访问,而局部函数只能在其声明函数内部访问。

函数柯里化

函数柯里化是一种将函数分解为一系列较小函数的技术。每个较小的函数都接受一个参数,并返回一个新函数,该新函数接受下一个参数,依此类推,直到执行原始函数。

函数柯里化在函数组合和创建部分应用函数方面很有用。

函数重载

函数重载允许我们为同一函数名称定义多个实现。每个实现接受不同数量或类型的参数。

函数重载在 JavaScript 中不被原生支持,但可以使用技巧来实现。

示例代码

// 函数声明
function add(a, b) {
  return a + b;
}

// 函数表达式
const multiply = (a, b) => a * b;

// 箭头函数
const square = (x) => x * x;

// 函数调用
const result = add(2, 3);
console.log(result); // 输出:5

// 函数柯里化
const addCurried = (a) => (b) => a + b;
const add5 = addCurried(5);
const result = add5(10);
console.log(result); // 输出:15

// 函数重载(使用技巧实现)
function sum(a, b) {
  if (arguments.length === 1) {
    return a;
  } else {
    return a + b;
  }
}
const result = sum(5);
console.log(result); // 输出:5
const result = sum(5, 10);
console.log(result); // 输出:15

我希望这篇文章能帮助你理解 JavaScript 函数的概念。请随时提出任何问题或发表评论。