JavaScript函数声明的几种方式

前端再怎么发展也离不开JavaScript的贴心陪伴,函数作为JavaScript的第一等公民,有着它自己的亮点,下面我们来介绍下作为第一等公民有哪几种声明方式。

使用语法是ES5,ES6箭头函数代入就可以

普通函数声明

 function fun() {
   console.log("我是一等公民")
 }
 fun()

在声明的时候必须包含名称,因为如果不包含名称的话会被认定为表达式,而如果作为表达式的话又不能以function作为开头。所以,还是把名称加上吧。

括号里面可以传入参数,我们称它们为“形参”,调用的时候在调用方法中填入的叫做“实参”,可以看下面例子:

 function fun(a, b) {
   let sum = a + b;
   console.log("计算结果:", sum) // 5
 }
 fun(2, 3)

匿名函数

比较特殊的是匿名函数在创建之后是不可以直接运行访问的,如果想要访问可以使用下面这种方式:

 (function () {
    console.log('111');
 })()

因为不能直接访问,所以这个重担交给表达式处理会比较合适,可以通过赋值变量进行访问。

函数表达式

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

 let fun = function () {
    console.log('111');
  }
 fun()

除了使用匿名函数表达式外我们也可以使用命名函数表达式,方式如下:

 let fun = function name() {
   console.log('111');
  }
 fun()

在这种情况下,函数名称是不允许在函数外部访问的,只能在函数内部调用,可以看下面例子使用命名表达式实现经典斐波那契数列:

 let fun = function fib(n) {
   if (n < 0) {
    console.log('输入的数字不能小于0');
    return false
   } else {
     if (n == 1 || n == 2) {
       return 1;
     } else {
       return fib(n - 1) + fib(n - 2);
     }
   }
 }
  console.log(fun(6)); // 8

构造函数

主要是使用new函数名来进行实例化函数,与上面函数声明不同的是构造函数在定义时首字母大写,这个是作为规范来定义声明的。

使用构造函数可以更方便的创建对象实现复杂的需求,通过下面的例子可以有一个更清晰的认识

 function Fun(name, age) {
   // 使用this指向这个参数
   this.name = name
   this.age = age
  }
 let res1 = new Fun("小明", 18)
 let res2 = new Fun("小红", 28)
 let res3 = new Fun("小张", 24)
  
 console.log(res1, res2, res3);
 // { name: '小明', age: 18 } Fun { name: '小红', age: 28 } Fun { name: '小张', age: 24 }

通过这个例子我们可以感受到,构造函数的魅力了吧,关于this指向后续会专门出一篇文章来深入了解下,构造函数也可以转换为类的方式,这个后面会有说明。

小结

简单的介绍函数的几种声明方式主要目的为了巩固知识库,千里之行始于足下,后面会陆续将一些小知识点通过文章的方式进行输出。


个人博客已上线,欢迎来访~
传送门:夜雨炊烟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雨炊烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值