ES6语法学习笔记之函数默认参数

函数传参可以方便的设置默认值

以往设置默认值是这样的:

                function show1(a,b){
			a = a || '欢迎';//调用时如果传参,就用传进来的,如果没有,那就用默认的,比如这里的‘欢迎‘
			b = b || 'mmr';
			console.log(a,b);
		}
		show1('welcome','牧马人');//welcome 牧马人
		show1('welcome');//welcome mmr
		show1('','牧马人');//欢迎 牧马人
复制代码

现在利用解构赋值传默认参数:

                function shows({t,f=0}){
			console.log(t,f);
		};

		shows({t:1});//只传第一个参数
复制代码
		function show3({x=0,y=0}={}){
			console.log(x,y);
		}
		show3();//都不传
复制代码

函数传默认参数时用的变量,不能在函数里再用let const声明

		function show(a=18){
			let a=101;
			console.log(a);
		};

		show();//结果会报错,因为传参时,a已经被定义,不能再次用let const声明
复制代码

...扩展运算符、reset运算符

...扩展运算符可以把数组展开,直接展示成多个内容

                let arr = ['apple','banana','orange'];
                console.log(arr);//打印整个数组
                console.log(...arr);//...可以把数组展开,直接展示其内容
复制代码
		function showdiu(f,g,s){
			console.log(f,g,s);
		}
		showdiu(...[1,3,5]);
复制代码

...扩展运算符还可以把普通的一串内容,转换成数组

		function show(a,b){
			console.log(a,b);
		}
		show(1,2,3,4,5);//这里真正被接收到的参数只有一个,因此结果是1 2
复制代码
		function shows(...c){//这一步把普通一串内容转化成了数组
			console.log(c);
		};

		shows(1,2,3,4,5);
复制代码

其他应用场景:给数组排序 以前是这样的:

                function showss(){
			let d=Array.prototype.slice.call(arguments);
			console.log(d);
			// return 1;
			return d.sort();
		}
复制代码

或者这样的:

		function showtest(e){
			return e.sort();
		}

		console.log(showtest([1,4,5,3,6]));
复制代码

用ES6语法是这样的:

		function showsort(...ss){
			return ss.sort();
		}
		console.log(showsort(1,9,8,3,2));
复制代码

...还有一个名字叫剩余运算符,原因参考如下案例:

                function showsy(u,w,...k){
			console.log(u,w);
			console.log(k);
		}
		showsy(1,2,4,5,6);//1 2 [4,5,6]
复制代码

数据映射:

		let arr1 = [1,2,3,4,5];
		let arr2 = [...arr1];//推荐写法
		let arr3 = Array.from(arr1);//IE11 及其更早的浏览器版本不支持 from 方法
		console.log(arr1,arr2);
		console.log(arr3);
复制代码

转载于:https://juejin.im/post/5c4c0b11e51d4526e57da874

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值