携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天juejin.cn/post/712312…
箭头函数被创造出来最大的作用是作为回调函数来使用。
箭头函数模板
var /let 函数名=(参数) = { 函数体} var f = v = v; 等价于 var f=function( v ){ return v }
注意:
- 形参有且只有一个的时候,()可省略,如果形参有多个就不能省略。
- { }里的函数体,写法和以前一样,如果=>的后面只有一个表达式或者一个值,那么它是作为函数的返回值返回,{ }可以省略
使用箭头函数要注意以下几点:
- 箭头函数this指向固定化,指向在该函数创建时上级作用域中this的指向。
- 不可以当作构造函数,不能对箭头函数使用new命令,否则会抛出一个错误。
- 箭头函数里没有arguments函数,如果想使用,可用reset参数代替。
- 不能使用 yield命令,因此箭头函数不可用作genetator函数。
name属性
函数的name属性,返回函数的函数名。
数组扩展
数组的扩展
...扩展运算符
说明:好比reset参数的逆运算,...reset用来接收多余的形参,并把这个形参用[]括起来,reset就是一个真正的数组,而扩展运算符是把数组的每个元素拿出来,以逗号隔开,进行序列化。
var arr=[1,2,3,4] var x=...arr
扩展运算符的应用 1、复制数组
// 扩展运算符代替了apply
// ES5写法
function a(p,o,i){
console.log(p,o,i)
}
a.apply(null,[1,2,3])
// ES6写法
function b(pp,oo,ii){
console.log(pp,oo,ii)
}
var dd=[1,2,3]
b(...dd)
// 扩展运算符的应用ES6
var arr=[1,2,3,4]
// 1、复制数组
var x=[...arr];
var xx=arr.concat();//ES5写法复制数组
console.log(x,xx)//1,2,3,4
//2、合并数组
var arr1=["tom","lily"];
var y=[...arr,...arr1];
console.log(y);//返回新数组[1,2,3,4,"tom","lily"]
// 3、把字符串转为真正的数组
var z=[..."hello"];
console.log(z);//['h', 'e', 'l', 'l', 'o']
// var zz=[...z];
// 4、与结构赋值结合起来,生成新的数组
const [first,...last]=[1,2,3,4,5];
console.log(first);//1
console.log(last)//[2,3,4,5]
const [ff,...ll]=[];
console.log(ff,ll)//undefined//[]
const [f,...l]=["foot"];
console.log(f,l)//foot//[]
//5、实现了Iterrator接口的对象
// Map和Set结构,generrator函数