ES6函数扩展

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>ES6  函数扩展</title>
	</head>
	<body>
		<script type="text/javascript">
			//函数扩展
			function foo(a,b){
				a=a||0;
				b=b||0;
				return a+b;
			}
			console.log(foo());
			function foo1(a=0,b=0){//设置默认值
				return a*b;
			}
			console.log(foo1(3,3));
			
			function sum(...arg){
				//console.log(arg);//arg变成了数组
				let res=0;
				arg.forEach(function(item){
					res+=item;
				});
				return res;
			}
			console.log(sum(1,2,8));
			
			//将第一个参数分离出来  第一个参数x后面几个参数的和
			function sum1(n,...arg){
				let res=0;
				arg.forEach(function(item){
					res+=item;
				});
				return n*res;
			}
			console.log(sum1(1,2,8));
			//箭头函数不是为了替代function存在的   但是let是为了替代var存在的
			let arrowFn=()=>{};
			
			console.log([1,2,3].find((item,index,array)=>item>2));
			//参数没有  参数入口  ()=>{}
			let log=()=>{
				console.log(123);
			}
			//参数只有一个  圆括号可以不写
			let log1=msg=>{
				console.log(msg);
			}
			//参数多个   同  参数没有情况   圆括号一定要写
			let sum3=(a,b)=>{
				console.log(a+b);
			}
			//关于语法块的大括号   只有一句话的时候就可以不写大括号
			console.log([1,2,3,4].map(function(item){
				return item*3
			}).filter(function(item){
				return item%2==0;
			}));
			console.log([1,2,3,4].map(item=>item*3).filter(item=>item%2==0));
		
		//箭头函数this指向是固定的   绑定定义时所在的对象
		function a(){
			console.log(this);
		}
		let obj={a}
		a();//window
		obj.a();//obj  fn
		
		//函数this的指向是在方法执行时  离方法最近的对象
		
		let a1=()=>{
			console.log(this);
		}
		let obj1={a1}
		a1();//window
		obj1.a1();//window
		a1.call(obj1);//window
		
		//箭头函数不能当作构造函数使用  不能new
		let f=()=>{
			this.a=1;
		}
		f();
		</script>
	</body>
</html>

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值