JavaScript 函数是执行特定任务的代码块。函数可以接受参数,并返回值。在 JavaScript 中,有两种方式来定义函数:函数声明和函数表达式。

函数声明

函数声明是最传统的定义函数的方式。它使用 function 关键字来声明函数,并指定函数名和参数列表。

function sayHello(name) {
  console.log('Hello, ' + name);
}

在上面的例子中,sayHello 是一个函数声明,它接受一个参数 name,并在控制台输出一条问候信息。

函数表达式

函数表达式是另一种定义函数的方式。它使用 function 关键字,但是通常被赋值给一个变量。

var sayHello = function(name) {
  console.log('Hello, ' + name);
};

在上面的例子中,sayHello 是一个函数表达式,它被赋值给变量 sayHello。这样,你就可以通过变量名来调用这个函数。

函数声明与函数表达式的区别

  1. 提升:函数声明会在代码执行之前被提升到其所在作用域的顶部。这意味着你可以在函数声明之前调用它。而函数表达式则不会提升,所以你必须在函数声明之后才能调用它。
console.log(sayHello); // 函数声明:输出 undefined
console.log(sayHello()); // 函数声明:正常工作
console.log(sayHello); // 函数表达式:输出 [Function: sayHello]
console.log(sayHello()); // 函数表达式:抛出错误
  1. 匿名函数:函数声明可以没有函数名,但是函数表达式必须有一个函数名。
function () {
  console.log('I am an anonymous function declaration.');
}

(function() {
  console.log('I am an anonymous function expression.');
})();

总结

函数声明和函数表达式是 JavaScript 中定义函数的两种方式。它们各有优缺点,选择哪种方式取决于你的具体需求。

了解更多关于 JavaScript 的信息