箭头函数及参数、name、length属性
2019-06-21 本文已影响0人
关耳木南
<script type="text/javascript">
function fn(){
console.log(this)//window
}
fn();//函数自执行时,函数不依赖于任何对象。这种情况
//this全部指向了顶层对象window
/*
箭头函数里没有this和arguments
1、箭头函数的this是固化的,指向所在环境的this,或者说没有this.
所有在箭头函数里使用this是默认的外层的,如果都没有指向window。
2、箭头函数里没有arguments但是有函数的rest参数(函数的剩余参数)
*/
let add = function(){
return console.log(1)
}
add();//1
//箭头函数写法 箭头后面的console.log(1),就是相当于return返回的东西
let add2 = () => console.log(1)
add2();//1
let add3 = (n) => console.log(n) //带有参数的箭头函数
add3(3)//3
//多条语句时,写花括号不可省略return关键字
let add4 = (n) => {
let b = n + 5;
let c = b + 2;
return console.log(c);//10
}
add4(3);
// 函数的rest参数
let fnu =function(a,...b){
console.log(a);
console.log(b);
}
fnu(12,23,34);
fnu(0);
let add5 = (...a) => {
console.log(a);
}
add5(11,22,33)
//剩余参数只能出现在最后一个,此处就叫函数的rest参数,
//是一个数组,可以用数组的方法
let add6 = (...a) => {
console.log(a);
}
add6(1,2,3)
// 箭头函数的name属性和length属性
let add7 = function(){
console.log(add7.name);//add7 函数的名字
}
add7();
let add8 = () => {
console.log(add8.name);//add8 函数的名字
}
add8();
//legnth:返回函数形参的个数,不包括rest参数的和赋值的形参
let add9 = (a,b,c,d) => console.log(add9.length);//4
add9()
</script>