js-es6-函数扩展
2017-10-03 21:47
225 查看
参数默认值
剩余参数 把剩下的参数存放在数组里,剩余参数后面不能再跟参数了
箭头函数 箭头函数前面是参数,箭头后面是返回值
多个或者另个参数需要带小括号
当有一个参数的时候,可以省略括号
如果箭头函数体内含有多行代码,函数体内需要加花括号
如果想要返回对象的时候,需要函数体用小括号包裹,函数体内花括号包裹返回的对象
注意事项
1.箭头函数体内没有自己的this对象,所以在使用的时候,其体内的this就是定义时所在的环境对象,而不是使用时所在环境的对象
2.箭头函数体内没有arguments对象,如果要用,可以用rest参数代替
3.不可以当做构造函数,不可以使用new命令,否则会抛出错误
4.箭头函数不能用作Generator函数
function foo(x=2,y=5){ console.log('x :'+x,'y :'+y); } foo();//x :2 y :5 foo(3);//x :3 y :5 foo(3,4);//x :3 y :4注意默认值后面不可以再有不是默认值的变量,前面可以有不是默认值的变量
function foo(x,y=5){ console.log('x :'+x,'y :'+y); } foo(2);//x :2 y :5 // 不可以这样写 function foo(x,y=5,z){}
剩余参数 把剩下的参数存放在数组里,剩余参数后面不能再跟参数了
function fn(m,n,...rest){ for(let i in rest){ console.log(i);//0 1 2 } } fn(1,2,3,4,5);
//把连续的数组转换成分散的 console.log('a',...[1,2,4]);//a 1 2 4
箭头函数 箭头函数前面是参数,箭头后面是返回值
多个或者另个参数需要带小括号
let arr=[1,2,3]; let result=arr.sort((a,b)=>b-a); console.log(result);//[3, 2, 1]
当有一个参数的时候,可以省略括号
let arrow=v=>v*3; console.log(arrow(2));//6
如果箭头函数体内含有多行代码,函数体内需要加花括号
let fn=(a,b)=>{ a=a*2; b=b*2; return a+b; } console.log(fn(1,2));//6
如果想要返回对象的时候,需要函数体用小括号包裹,函数体内花括号包裹返回的对象
let fn=(a,b)=>({a,b}); console.log(fn(1,2));//{a: 1, b: 2}
注意事项
1.箭头函数体内没有自己的this对象,所以在使用的时候,其体内的this就是定义时所在的环境对象,而不是使用时所在环境的对象
function fn(){ setTimeout(function(){ console.log(this);////Window {stop: ƒ, open: ƒ, alert: ƒ, confirm: ƒ, prompt: ƒ, …} },1000); setTimeout(()=>{ console.log(this);//{a: 1} },1500); } var obj={a:1}; fn.call(obj);
2.箭头函数体内没有arguments对象,如果要用,可以用rest参数代替
function fn(){ setTimeout(()=>{ console.log(arguments);//[1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ] },1000); } fn(1,2,3);
3.不可以当做构造函数,不可以使用new命令,否则会抛出错误
const fn=(a,b)=>a+b; const f=new fn(1,2);//会报错
4.箭头函数不能用作Generator函数
相关文章推荐
- js Date扩展Format()函数
- ES6--对象、函数的扩展
- ES6笔记 - 函数的扩展
- ES6小实验-函数的扩展
- ES6入门之函数的扩展
- ES6函数扩展
- ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用
- [js高手之路] es6系列教程 - 对象功能扩展详解
- js获取时间函数及扩展函数的方法
- js获取时间函数扩展
- ES6入门——函数的扩展
- [js高手之路] es6系列教程 - 对象功能扩展详解
- es6函数扩展(六)
- JS中数组的常用方法(包含es6扩展)
- 汇总近期Js函数扩展
- ES6 --- 函数扩展
- js-es6-数值扩展
- ES6 入门系列 - 函数的扩展
- [js] ES6 函数
- 模仿JQuery.extend函数扩展自己对象的js代码