学习要点:1.参数默认值 2.name 属性
本节课我们来开始学习 ES6 中函数传参默认值等问题;
一.参数默认值
1. ES6 之前函数是无法给参数设置默认值的,而 ES6 支持了这个特性;
function fn(name,age=100,arr=[],obj={},callback=function(){}){ console.log(name); //Mr.ren console.log(age); //100 console.log(arr); //[] console.log(obj); //{} console.log(callback('callback')); //undefined}fn('Mr.ren');
function fn(name,age=100,arr=[],obj={},callback=function(){}){ console.log(name); //Mr.ren console.log(age); //200 console.log(arr); //[1,2,3] console.log(obj); //{key:1} console.log(callback('callback')); //callback}fn('Mr.ren',200,[1,2,3],{key:1},function(info){ return info;});
2. 函数参数的默认值,也可以是另一个函数的返回值;
function fn(r,p=pi()){ console.log(r*r*p); //314}function pi(){ return 3.14;}fn(10);
3. 如果只想传递第二往后的参数,参数一保持默认值,可用 undefined 占位;
function fn(name='Mr.ren',age){ console.log(name+'|'+age); //Mr.ren|100}fn(undefined,100); //null,空都不行
4. 支持参数二使用参数一的值作为默认值,反之不可以;
//正确function fn(x=10,y=x){ console.log(x+'|'+y);}fn();//错误function fn(x=y,y=10){ console.log(x+'|'+y);}fn();
5. 解构变量有不定元素,那么函数的参数也可以有不定参数;
function fn(name,...other){ console.log(name); //Mr.ren console.log(other); //[100,'男']}fn('Mr.ren',100,'男');
二.name 属性
1. ES6 提供了一个 name 属性用于获取函数名,以方便开发者;
function fn(){};let fn2=function(){}let obj={ fn3:function(){}}console.log(fn.name); //fnconsole.log(fn2.name); //fn2console.log(obj.fn3.name); //fn3console.log((new Function()).name); //anonymous
如果您觉得有用,记得在下方点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的打赏支持才是小编继续努力的动力,么么哒。
每日分享在学习过程中总结的学习经验,学习笔记,笔试题,HTML,CSS,JavaScript,jQuery教程,Vue教程,PHP教程,TinkPHP教程等,望大家能以学习为目的,每天阅读一篇文章,了解身边的技术,陪有梦想的人一起成长!