JavaScript创建函数有四种方式:函数声明(具名、可提升)、函数表达式(匿名或具名、不可提升)、箭头函数(无this/arguments、不可构造)、Function构造函数(动态生成、性能差)。

在 JavaScript 中创建函数主要有四种常用方式,每种适用场景不同,理解区别能帮你写出更清晰、更可靠的代码。
函数声明(Function Declaration)
最基础的方式,用 function 关键字加函数名定义,会被“提升”(hoisted),即可以在定义前调用。
语法示例:
function sayHello(name) {return `Hello, ${name}`;
}
注意:函数声明必须有名字,且不能出现在 if、for 等块级作用域内(ES2015+ 在严格模式下会报错)。
立即学习“Java免费学习笔记(深入)”;
函数表达式(Function Expression)
把函数赋值给变量,可以是具名或匿名。不会被提升,必须先定义再调用。
常见写法:
- 匿名函数表达式:const add = function(a, b) { return a + b; };
- 具名函数表达式:const calc = function sum(a, b) { return a + b; };(内部可用 sum 递归调用)
箭头函数(Arrow Function)
ES6 引入的简洁写法,没有自己的 this、arguments、super 或 new.target,适合写简短逻辑或回调。
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
写法灵活:
- 单参数可省括号:x => x * 2
- 多参数需括号:(a, b) => a + b
- 函数体多行需花括号和 return:() => { console.log('hi'); return true; }
⚠️ 不能用作构造函数(不能 new),也没有原型属性。
Function 构造函数
动态创建函数,传入参数名和函数体字符串,类似 eval,性能差且不推荐常规使用,仅在极少数需要运行时生成逻辑的场景下考虑。
示例:
const multiply = new Function('a', 'b', 'return a * b');缺点:无法访问外层作用域(闭包),调试困难,存在安全风险(避免拼接用户输入)。
基本上就这些。日常开发中,优先用函数声明或箭头函数;需要绑定固定 this 时选箭头函数;要动态生成或兼容老环境时再考虑其他方式。










