📜  函数表达式和函数声明 - Javascript (1)

📅  最后修改于: 2023-12-03 15:36:50.121000             🧑  作者: Mango

函数表达式和函数声明 - Javascript

在Javascript中,函数是一等公民,意味着函数可以被存储在变量中,可以被传递给其他函数作为参数,也可以从函数中返回。

Javascript中定义函数有两种方式:函数表达式和函数声明。本文将介绍它们之间的差异以及如何使用它们。

函数声明

函数声明是在代码的主体中声明一个函数,它的语法如下:

function functionName(parameters) {
    // 函数体
}

其中,functionName是函数的名称,parameters是函数的参数列表。函数声明的名称是可选的,如果没有声明名称,则被称为匿名函数。函数声明可以在代码的任何地方声明,而不会影响其可访问性。

函数声明具有函数提升性质,这意味着函数声明可以在调用之前使用。

示例:

function greet(name) {
    console.log(`Hello, ${name}!`);
}

greet('Peter'); // 输出:Hello, Peter!
函数表达式

函数表达式是将一个函数赋值给一个变量,它的语法如下:

const functionName = function(parameters) {
    // 函数体
}

其中,functionName是变量名,parameters是函数的参数列表。函数表达式可以是匿名的,也可以命名。函数表达式具有变量提升的特性,因此不能在声明之前使用。

示例:

const greet = function(name) {
    console.log(`Hello, ${name}!`);
}

greet('Mary'); // 输出:Hello, Mary!
区别

函数表达式和函数声明之间的区别在于它们被解析和实现的时间不同。

函数声明在编译阶段被解析和实现,因此它们具有函数提升性质,可以在调用之前使用。

函数表达式在执行阶段被解析和实现,因此它们需要在使用之前声明。它们被赋值给变量,因此可以作为参数被传递,也可以在其他函数中使用。

示例:

// 函数声明
greet('Tom'); // 输出:Hello, Tom!
function greet(name) {
    console.log(`Hello, ${name}!`);
}

// 函数表达式
greet('Jack'); // 报错:greet is not defined
const greet = function(name) {
    console.log(`Hello, ${name}!`);
}
结论

函数声明和函数表达式是Javascript中定义函数的两种方式。函数声明在编译阶段被解析和实现,可以在调用之前使用,而函数表达式在执行阶段被解析和实现,需要在使用之前声明。在使用函数声明和函数表达式时需要考虑到它们的差异。