JS 普通函数、匿名函数、箭头函数 的特点和区别

1. 普通函数 【具名函数】
普通函数存在 函数声明的提升

普通函数的定义:

关键字(function) 函数名 (参数){   //参数是形参(形式参数)
	函数体
	return  xxx
}

普通函数的调用:
	函数名(参数)  //参数是实参(实际参数)



形参和实参:
	形参(形式参数):就是我在这个地方占个位,表示这个地方有一个参数,
我给他一个形式的名字用来表示我要占的这个坑的名字,在封装的函数里面会用到
这个形式参数来代表之后函数真正传进来的值进行运算。

	实参:再调用函数的时候真正传进去要进行运算的值(真实的数据)


在下面的例子中:val就是形参
			  调用函数传进去的[123]就是实参
//函数声明提升
fun([1,2,3]) //[1,2,3]
 function fun(val){
   console.log(val)
   console.log(arguments)
 }
 //调用函数
fun([1,2,3]) //[1,2,3]

arguments内置对象
在这里插入图片描述

2. 匿名函数
匿名函数存在 变量提升 不存在函数声明提升

匿名函数的定义:
var 变量名 = 关键字 () {
	函数体
	return xxx
}
匿名函数调用:
	变量名()
var b = function () {
   console.log(arguments)
}
b() //

输出arguments内置对象 关于函数参数的信息
在这里插入图片描述

3.箭头函数

箭头函数的定义:
var 变量 = (参数) => { //形参
	函数体
}
箭头函数的调用:
	变量名(参数)  //实参
  • 箭头函数参数只有一个时,包裹参数的括号 () 可以去掉
  • 箭头函数函数体只有一行的时候,包裹函数体的花括号 {} 可以去掉
var a = (val) => {
 //箭头函数是匿名函数,不能作为构造函数,不能使用new
	 console.log(arguments)
}
a([4,5,6])

同:
函数的数据类型都是function

区别:
this的指向:

  • 在全局函数中,普通函数和匿名函数this的指向是window
  • 箭头函数的this指向箭头函数不绑定this会捕获其所在的上下文的this值,作为自己的this值
    (箭头函数通过 call() 或 apply() 方法调用一个函数时,只传入了一个参数,对 this 并没有影响。)

arguments内置对象:

JavaScript中,arguments对象是比较特殊的一个对象,实际上是当前函数的一个内置对象;也就是说所有函数都内置了一个arguments

	普通函数和匿名函数有arguments内置对象
	箭头函数没有arguments内置对象

箭头函数没有 prototype (原型)
箭头函数不能做构造函数(因为没有this)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值