3.1 声明函数
函数是在 JavaScript 中的基础构建块之一。它们让你能组织代码、重用逻辑并创建更复杂的结构。我们来看看声明和使用函数的三种主要方式:函数声明、函数表达式和箭头函数。
函数声明 是创建一个命名函数的方式,可以在之后调用。这些函数会被提升(hoisted)到其作用域的顶部,这意味着你可以在代码中先调用它们。
语法:
function name (arguments) {
// 函数体
}
使用示例:
JavaScript
// 声明函数
function greet(name) {
return `Hello, ${name}!`;
}
// 调用函数
console.log(greet('Alice')); // 输出: Hello, Alice!
3.2 函数表达式
函数表达式会创建匿名函数(没有名称的函数)且可以赋值给变量。这种函数不会被提升,因此只能在声明之后调用。
语法:
const name = function (arguments) {
// 函数体
}
使用示例:
JavaScript
// 函数表达式
const greet = function(name) {
return `Hello, ${name}!`;
};
// 调用函数
console.log(greet('Bob')); // 输出: Hello, Bob!
3.3 箭头函数
箭头函数(arrow functions) 是一种简写方式,同时保存了从父作用域继承的 this
上下文。箭头函数没有自己的 this
,所以在事件处理器和数组方法中特别有用。
语法:
const name = (arguments) => {
// 函数体
}
如果函数仅有一个参数,可以省略圆括号。如果函数返回一个表达式,可以省略花括号和 return
关键字。
示例 1: 完整写法
JavaScript
// 箭头函数
const greet = (name) => {
return `Hello, ${name}!`;
};
// 调用函数
console.log(greet('Charlie')); // 输出: Hello, Charlie!
示例 2: 简写
JavaScript
// 一个参数和一个表达式的箭头函数
const greet = name => `Hello, ${name}!`;
// 调用函数
console.log(greet('Dana')); // 输出: Hello, Dana!
3.4 函数声明方式比较
提升(hoisting):
- 函数声明: 函数会被提升,可在声明前调用
- 函数表达式 和 箭头函数: 不会被提升,仅能在声明后调用
this 上下文:
- 函数声明 和 函数表达式: 拥有自己的 this 上下文
- 箭头函数: 没有自己的 this,上下文从父作用域继承
简洁性:
- 箭头函数: 更简洁,常用于短函数和回调
GO TO FULL VERSION