在编写JavaScript代码中,函数是我们经常会写到的。但是在不同的工程师写到代码中,函数的声明方式却都是不尽相同的,那函数的声明方式到底有几种,他们之间有什么区别呢?我们接下来就来好好说一说
老规矩我们先从定义下手
function,函数,是一个可以被其他代码或其自身调用的代码片段,或者是一个指向该函数的变量 。当函数被调用时,参数被作为输入传递给函数,并且函数可以返回输出。在 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()
箭头函数
这种方法是创建 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声明函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!