在前端项目中箭头函数是一种函数的简写方式,简化了代码,让代码看起来更加优雅,同时也是面试中被经常问到的问题。你知道ES6的新特性?...箭头函数...,那请你说一下箭头函数吧,箭头函数是ES6的新增代码,可以简化代码,解决了this的指向问题,不用再去that去接收函数外面的this了。还有呢?不知道了,下面就针对箭头函数就行一个简单的说明。
一、箭头函数的写法
var d = ( )=>9
var a = (b, c) => b+c
console.log(d());//9 当函数没有参数的时候,直接使用一个圆括号代表参数部分
console.log(a(5,2));//7 函数有参数正常书写就好,当只有一条代码的时候可以省略{ }
//完整函数
var e = function () {
return 10
}
console.log(e());//10
var f = ( ) => {
let a=5
return a
}
console.log(f());// 当函数大于一条语句的使用不能省略{ }
二、箭头函数规则
- 当函数参数只有一个时,括号可以省略;但是没有参数时,括号不可以省略。
- 函数体(中括号)中有且只有一行return语句时,中括号及return 关键字可以省略。
三、箭头函数的特点(面试有用)
1.箭头函数没有自己的this指向
2.不可以当作构造函数,也就是说,不可以对箭头函数使用new
命令,否则会抛出一个错误。
3.不可以使用arguments
对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
4.不可以使用yield
命令,因此箭头函数不能用作 Generator 函数。
注:上面四点中,最重要的是第一点。对于普通函数来说,内部的this
指向函数运行时所在的对象,但是这一点对箭头函数不成立。它没有自己的this
对象,内部的this
就是定义时上层作用域中的this
。也就是说,箭头函数内部的this
指向是固定的,相比之下,普通函数的this
指向是可变的。