JavaScript 词条目录
前端Wiki/JavaScript/基础/函数

函数声明与调用

函数是把一段代码打包起来、起个名字、随时重复调用的机制,是「代码复用」最基本的单位。常见写法有三种:函数声明 function foo() {}、函数表达式 const foo = function() {}、箭头函数 const foo = () => {}。

一个重要区别:函数声明有提升(hoisting),可以在定义之前调用;函数表达式和箭头函数没有提升,必须先定义再调用。初学时不必刻意利用提升,保持「先定义、后调用」的顺序更清晰。

JS 中函数是「一等公民」:可以存进变量、当参数传给别的函数、当返回值返回。这种「函数当参数」的写法叫回调函数,是后面学数组方法、事件处理、异步编程的基础。

本节要点三种写法:声明(有提升)、表达式、箭头函数;函数可像值一样传递,「当参数传的函数」叫回调函数。
JavaScript
// 方式一:函数声明(有提升,可先调用后定义)
function greet(name) {
  console.log('你好,' + name);
}
greet('小明');

// 方式二:函数表达式(没有提升)
const add = function (a, b) {
  return a + b;
};
console.log(add(2, 3));

// 方式三:箭头函数
const mul = (a, b) => a * b;
console.log(mul(2, 3));

// 函数是"一等公民":可以当参数传
function execute(fn, x, y) {
  return fn(x, y);            // 调用传进来的函数
}
console.log(execute(add, 10, 20));   // 30
console.log(execute(mul, 10, 20));   // 200