JavaScript 函数

函数是 JavaScript 中非常重要的组成部分,它们是一组可以被多次调用的代码块,用于实现某个特定的任务或计算。

1. 函数声明

通过 function 关键字可以定义一个函数:

1
2
3
4
5
function greet(name) {
console.log("Hello, " + name);
}

greet("Alice"); // 输出 "Hello, Alice"

2 函数表达式

函数表达式是一种更灵活的方式,可以将函数赋值给变量。匿名函数和具名函数均可用于函数表达式。

1
2
3
4
5
const greet = function(name) {
console.log("Hello, " + name);
};

greet("Bob"); // 输出 "Hello, Bob"

3 箭头函数

箭头函数是 ES6 引入的一种更简洁的函数语法,特别适用于简单的函数表达式。

1
2
3
4
5
const greet = (name) => {
console.log("Hello, " + name);
};

greet("Charlie"); // 输出 "Hello, Charlie"

简写形式

如果函数体中只有一个表达式,可以省略花括号 {}return 关键字:

1
2
const add = (a, b) => a + b;
console.log(add(2, 3)); // 输出 5

4 函数的参数和返回值

函数可以接受多个参数,并且可以返回值。通过 return 关键字,函数可以返回一个值给调用者。

1
2
3
4
5
6
function add(a, b) {
return a + b;
}

let result = add(5, 10);
console.log(result); // 输出 15

5 默认参数

JavaScript 允许为函数参数指定默认值,这在 ES6 中得到了更好的支持。

1
2
3
4
5
6
function greet(name = "Guest") {
console.log("Hello, " + name);
}

greet(); // 输出 "Hello, Guest"
greet("David"); // 输出 "Hello, David"

6 函数的作用域和闭包

在 JavaScript 中,函数内部声明的变量只能在该函数内部访问。这种变量的可访问范围称为函数的作用域。

局部变量和全局变量

  • 局部变量:在函数内部声明的变量,作用范围仅限于该函数。
  • 全局变量:在函数外部声明的变量,可被任何代码访问。
1
2
3
4
5
6
7
8
9
10
11
let globalVar = "全局变量";

function test() {
let localVar = "局部变量";
console.log(globalVar); // 可以访问全局变量
console.log(localVar); // 可以访问局部变量
}

test();
console.log(globalVar); // 可以访问全局变量
// console.log(localVar); // 错误:无法访问局部变量

闭包

闭包是指函数内部可以访问外部函数的变量,并将其“封闭”在自身内部,即使外部函数已经执行完毕,闭包依然可以保留该变量的引用。

1
2
3
4
5
6
7
8
9
10
11
function makeCounter() {
let count = 0;
return function() {
count++;
console.log(count);
};
}

let counter = makeCounter();
counter(); // 输出 1
counter(); // 输出 2

JavaScript 函数
https://blog.pangcy.cn/2020/05/02/前端编程相关/JavaScript/JavaScript 函数/
作者
子洋
发布于
2020年5月2日
许可协议