函数声明和函数表达式都可以用来定义函数,但它们之间有一些重要的差异:
- 函数声明:使用
function
关键字来声明函数的名称、参数和主体,并将其分配给一个变量。函数声明会被提升到当前作用域的顶部,因此可以在函数声明之前调用函数。例如:
function add(a, b) { return a + b; }
- 函数表达式:将函数定义为一个表达式,并将其分配给一个变量。函数表达式在运行时进行求值,因此不能在定义之前调用函数。例如:
var add = function(a, b) { return a + b; };
总的来说,函数声明更容易阅读,因为它们在作用域的顶部。而函数表达式更灵活,使您能够将函数存储在变量中,更好地控制函数的作用域,并使用更高级别的技术,例如闭包。