当前位置 博文首页 > 大曾blog:DaZeng:深入解读ES6系列(二)

    大曾blog:DaZeng:深入解读ES6系列(二)

    作者:[db:作者] 时间:2021-08-03 15:44

    3.0 ES6函数

    • 哈喽小伙伴们,爱说‘废’话的Z又回来了,欢迎来到Super IT曾的博客时间,上一节说了es6的历史,变量,以及闭包,这一节我们继续我们知识的海洋,一起奋斗不秃头!不足的欢迎提问留言。
      在这里插入图片描述
    • 今天一打开CSDN有被惊喜到哈哈被选热门超开心!看来要加更才行,当然注重基础是必须的!那我们继续~

    3.1箭头函数

    • 总结起来箭头函数也就那么回事儿,说白了就两点:
      1. 如果只有一个参数,()可以省。
      2. 如果只有一个return,{} 可以省。
    • 好了,箭头函数说完了,我们说下一个…😀,开个玩笑,哈哈,上实例:比如来个数组排序,你先想想数组怎么排序的再看代码
    	<body>
    		<script>
    			let arr=[500,10,66,37,81,10011,999]
    			arr.sort(function(a,b){
    				return a-b;
    			});
    			console.log(arr)
    		</script>
    	</body>
    

    问我sort是什么的?或者问我为啥return a-b的同学,移步W3school补补课,简言之这个就是一个排序函数输出结果如下:
    从小到大排列
    那么ES6怎么写呢?第一步去掉function,第二步加=>,就有了这样:

    arr.sort((a,b) =>{
    	return a-b;
    });
    

    再瞅瞅一个return,去掉{}好嘛?一行代码它不香嘛。

    arr.sort((a,b) => (a-b));
    

    在这里插入图片描述
    再举一个例子帮你理解,你可以先思考一个函数返回传参的2倍?两行代码搞定。

    <script>
    	let show = a =>a*2;
    	alert(show(2));
    </script>
    

    3.2函数的参数

    参数扩展/展开

    • 参数的扩展是个啥,就...对就是这三个点平时我们的省略号,这么一想就好理解了,就是把省略号前面的东西说完,省略号就是后面所有的东西,要我说就是也就是所谓的剩余参数。看看下面代码想想输出啥?
    <script>
    	function show(a,b,...args){
    		console.log(a,b,args)
    	}
    	show(1,{"2 name":"王"},"string",234,{"name":"李"})
    </script>
    

    对的,args管你是啥全部装起来放出来就是了,所以就是1.收集,2.展开。
    在这里插入图片描述
    同时这里也很好理解,...xxx要放在最后,毕竟都是省略号了省略的内容肯定在最后啊,这个很好理解,不行你可以试试在后面加参数输出是什么结果,我和你赌一包卫龙辣条,会报错。

    再来个例子帮你加深理解,输出两个数的和要求一个函数处理加法,一个函数用参数扩展接收传过来的值。

    <script>
    	function show(...args){
    		fn(...args);
    	}
    	function fn(a,b){
    		alert(a+b)
    	}
    	show(2,5);
    </script>
    

    在这里插入图片描述

    默认参数

    • 哇默认参数真的超级简单,但是说了我们是超级基础的!所以还是要写出来看看,我写个代码,你绝对秒懂,老司机你懂的嘿嘿嘿~代码和图放这里,自己品。
    <script>
    	function driveCar(b, y = 5, t = 9){
    		console.log(b,y,t)
    	}
    	driveCar(99,999);
    </script>
    

    在这里插入图片描述
    到这里,函数完事儿~

    4.0 解构赋值

    4.1 敲黑板(总结):

    • 为啥每次上来就是总结,因为最精辟最重要的话,直接一巴掌呼的给你,后面给你糖糖,你品你细品,是不是会回味无穷记忆深刻,哈哈,我们继续。

    要说解构赋值作重要的就三句话:
    1.左右两边结构必须一样
    2.右边必须是个东西
    3.声明和赋值不能分开(必须在一句话里完成)

    4.2 示例:

    • 先说第一个,有个数组1,2,3,然后打印出每一项,想想之前怎么做?循环遍历?单个赋值打印?来看我的:
    <script>
    	let arr = [1,2,3]
    	let [a,b,c] = arr
    	console.log(a,b,c)
    </script>
    

    在这里插入图片描述
    我感觉你懂了一点了,那你看看这个两个分别输出什么?

    <script>
    	// 1
    	let {a1,b1,c1} = {a1:"name", value:"password", c1:"class" }
    	console.log(a1,b1,c1)
    
    	// 2
    	let [{a,b},[n1,n2,n3],num,str] = [{a:123, b:"first"},["n1",999,{ff:"数组n3"}],17,"string"]
    	console.log(a,b,n1,n2,n3,num,str)
    	
    </script>
    

    在这里插入图片描述
    在这里插入图片描述
    怎么样爽不爽,左右两边结构必须一样,这句话有没有领悟了呢?那如果示例2中我不想{a,b},[n1,n2,n3]拆开,想输出一个整的数组或是对象怎么办,一样的道理,你先想想你怎么做,在看我的(不许偷看)。

    <script>
    	let [json,arr,num,str] = [{a:123, b:"first"},["n1",999,{ff:"数组n3"}],17,"string"]
    	console.log(json,arr,num,str)
    </script>
    

    在这里插入图片描述
    这样就输出了!有没有,顺便悄悄告诉你这叫粒度。

    • 我们来说第二个,右边必须是个东西,什么叫东西…你看这代码输出啥?
    <script>
    	let {a,b} = {12,5}
    	console.log(a,b)
    </script>
    

    这两边结构一样吧但能输出出来才怪了,啥也不是啊哈哈,右边是json格式?key:value来教你做大哥,铁定报错。
    在这里插入图片描述

    • 好了第三个来走你,上代码!老规矩先想输出啥。
    <script>
    	let [a,b];
    	[a,b] = [12,5]
    	console.log(a,b)
    </script>
    

    第三句话怎么说的来着?声明和赋值不能分开,一句话完成。这铁定报错啊,还能单独整咋地?就哦豁报错了嘛。
    在这里插入图片描述
    解构赋值这三句,完事儿~

    5.0 数组

    5.1 敲黑板(方法汇总)

    方法俗称解释
    map映射一个对一个
    reduce汇总一堆出来一个
    filter过滤器筛选你要的结果
    forEach循环(迭代)item走天下

    5.2 map

    • 什么叫一个对一个呢,打个比方就好比一个班的成绩[100,59,60,1],对应就是[“及格”,“不及格”,“及格”,“不及格”],哈哈所以考59真的很惨,考60真的很成功,特别是在大学哈哈,好了我们继续。
    • 想想现在依次alert这四个分数怎么做?
      在这里插入图片描述
    <script>
    	let arr = [100,59,60,1]
    	arr.map((item)=>{
    		alert(item)
    	})
    </script>
    

    *想想alert一次但显示每个分数的两倍怎么做?
    在这里插入图片描述

    <script>
    	let arr = [100,59,60,1]
    	let all = arr.map((item)=>{
    		return item*2
    	})
    	alert(all)
    </script>
    

    还记得之前的es6说过的嘛?一个return怎么?来优化代码。

    <script>
    	let arr = [100,59,60,1]
    	let all = arr.map((item)=>item*2)
    	alert(all)
    </script>
    
    • 那现在不想看分数了,直接alert出来所有的及格不及格怎么搞?
      在这里插入图片描述
      直接加判断嘛哎,上代码:
    <script>
    	let arr = [100,59,60,1]
    	let all = arr.map((item)=>item>59?"及格":"不及格")
    	alert(all)
    </script>
    

    5.3 reduce

    • 一堆出来一个什么个意思呢?就好比你求总数平均数等等,这么一想是不是好理解多了,那这个用来干嘛?商城购物车功能赛~对吧,来先看一段代码,你猜猜输出什么?
    下一篇:没有了