JavaScript声明函数的5种方法小结

作者:闭包旅人

时间:2026-10-26

浏览:361

本文总结了JavaScript中声明函数的五种主要方式:Function声明、匿名函数、函数表达式、箭头函数以及Function构造函数。文章详细解析了每种方法的语法结构、适用场景及注意事项,特别是箭头函数的简洁性与this指向问题,以及构造函数的动态执行特性,帮助开发者根据实际需求选择最合适的函数定义方式。

文章目录

在编写JavaScript代码时,函数是开发者经常使用的组件。然而,不同工程师在编写代码时,函数的声明方式往往存在差异。那么,函数究竟有几种声明方式?它们之间又有何区别?接下来我们将详细探讨。

首先,我们从函数的基本定义入手。

函数是一段可以被其他代码或自身调用的代码片段,也可以是一个指向该函数的变量。当函数被调用时,参数作为输入传递给函数,函数可以返回输出。在JavaScript中,函数也是一种对象。

函数名是函数声明或函数表达式中声明的标识符。函数的作用域取决于函数名是作为声明还是表达式存在。

以下是声明函数的5种方法。

1. Function声明

Function(也称为函数语句或函数定义)是 JavaScript中声明函数最常见的方式。

函数声明方法意味着我们将使用关键字function和function后的名称来声明函数。

function foo(){
    console.log('这是一个函数的打印结果')
}

在上述代码中,“function”是关键字,“foo”是函数名。

如果我们要调用这个函数,只需写下它的名字并加上括号,如下所示:

foo()

函数可以接受参数。如果数据是动态的,我们可以向函数传递多个参数。

假设我们在使用foo函数时,希望它根据传入的参数值动态打印参数。

我们可以这样编写代码:

function foo(arg){
     console.log('这是我们接收的参数'+arg)
     console.log(`这是我们接收的参数${arg}`)
}
foo("zayyo")

2. 匿名函数

匿名函数,顾名思义,是指没有名字的函数。

匿名函数仅使用function关键字即可声明一个函数。

function(){
            console.log(`这是一个匿名函数的打印`)   
}

然而,由于匿名函数在创建后无法直接访问,只能通过赋值给变量来访问,因此我们将把它存储在一个名为foo的变量中,这就是我们将在后续内容中看到的函数表达式。

3. 函数表达式

函数表达式允许我们创建一个没有任何函数名的匿名函数,并通过声明一个变量进行赋值来执行它。

let foo = function(){
          console.log(`这是一个函数表达式的打印`) 
}

在上述代码中,变量foo存储了一个匿名函数。因此,匿名函数是通过调用带有尾随括号和分号的变量来调用的。

调用示例:

let foo = function(){
          console.log(`这是一个函数表达式的打印`) 
}
foo()

4. 箭头函数

这种方法是创建JavaScript函数的一种更简洁的方式。代码示例如下:

()=>console.log(`这是一个箭头函数的打印`) 

然而,由于箭头函数没有名称,如果要调用它,应将其存储在一个变量中,就像函数表达式一样。

调用示例:

let foo = ()=>console.log(`这是一个箭头函数的打印`) 
foo()

箭头函数为定义匿名函数提供了简洁的语法。与其他函数声明方式相比,箭头函数表达式的语法更短。

箭头函数也可以接收参数:

let foo = (arg)=> console.log('这是我们接收的参数'+arg)
foo()

创建箭头函数时,括号()和花括号{}对于单个函数参数和单个语句是可以省略的。

如果函数要执行的指令较多,那么这些指令应该用花括号{}括起来:

let foo =  (number)=>{
        if(number>0){
            console.log('number大于0')
        }else{
            console.log('number小于0')
        }
}

5. 构造函数

声明函数的另一种方法是使用带有new关键字的Function构造函数。

让我们先看一下语法:

let sum =new Function("a","b","return a+b");

console.log(sum(5,6))

JavaScript中有一个名为Function的内置构造函数对象,可用于声明和创建函数。

此构造函数可以传递任意数量的参数。在这个例子中,我们向它传递了2个参数,即“a”和“b”。

最后一个参数是应该传递函数应该执行的指令的代码,也就是我们要执行的函数体。

一般语法是:

letfuncName= new Function("arg1","arg2","arg3","arg4","arg5",......,"函数体")

所以在上面的例子中,我们使用Function对象创建了一个函数sum()。

哪种方式最好?

这个问题没有标准答案,因为一切都取决于代码的编写需求和功能需求。

因此,你可以使用任何你想要的方法或函数类型,它们都会产生相同的效果。

因此,你可以根据个人喜好,随意选择你喜欢的任何一种。但是,我建议尽可能坚持使用箭头函数类型,因为它提供更好的性能和可读性。同时,使用时需要注意它的this指向问题。具体细节可以参考我的另一篇文章# 你真的知道JavaScript中的this到底指向的是什么吗?

到此这篇关于JavaScript声明函数的5种方法小结的文章就介绍到这了,更多相关JavaScript声明函数内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章