JavaScript定义函数主要有三种常见方式:函数声明(具名、可提升)、函数表达式(可匿名、不提升)和箭头函数(无this绑定、语法简洁)。

JavaScript 中定义函数主要有三种常见方式:函数声明、函数表达式和箭头函数。它们在语法、作用域行为和使用场景上各有特点。
函数声明(Function Declaration)
使用 function 关键字 + 函数名 + 参数列表 + 函数体来定义,会被“提升”(hoisted),即可以在定义前调用。
例如:
function greet(name) {return 'Hello, ' + name;
}
注意:函数声明必须有名字,且不能出现在条件语句或循环内部(严格模式下会报错)。
立即学习“Java免费学习笔记(深入)”;
函数表达式(Function Expression)
把函数赋值给一个变量,可以是匿名的,也可以有名字(用于调试或递归)。不会被提升,必须先定义后调用。
例如:
const add = function(a, b) {return a + b;
};
或者带名字的表达式:
const factorial = function fact(n) {return n };
箭头函数(Arrow Function)
ES6 引入的简写形式,没有自己的 this、arguments、super 或 new.target,适合写简洁回调或不依赖上下文的逻辑。
基本写法:
- 无参数:() => console.log('Hi');
- 单参数可省括号:x => x * 2;
- 多参数需括号:(a, b) => a + b;
- 函数体多行需大括号和 return:(a, b) => { return a + b; };
其他方式(较少用但存在)
比如 Function 构造函数(动态生成函数,性能差且不推荐)、类中的方法、对象字面量里的方法简写等,日常开发中以前三者为主。
基本上就这些。选哪种取决于是否需要提升、是否要绑定 this、代码可读性要求以及团队规范。










