文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-02-17 12:00

关注

在编写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到底指向的是什么吗?

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯