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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

zayyo   2023-03-21 我要评论

在编写JavaScript代码中,函数是我们经常会写到的。但是在不同的工程师写到代码中,函数的声明方式却都是不尽相同的,那函数的声明方式到底有几种,他们之间有什么区别呢?我们接下来就来好好说一说

老规矩我们先从定义下手

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

函数名是作为函数声明或函数表达式的一部分声明的标识符。函数的作用域取决于函数名是一个声明还是表达式。

声明函数的5种方法

1.Function声明

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

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

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()

箭头函数

这种方法是创建 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到底指向的是什么吗?

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们