(精讲)Es6 剩余参数,ES6内置对象,模板字符串内容(详例宝典)及灵活运用项目的实战案例

三点运算符又称剩余参数或者扩展运算符 

1:函数传不定参数,验证数组的长度。

            // function demo(a,...b){
            //     console.log(a,b)
            // }
            //可以验证数组的长度  比如console.log(a,b.length)//获取他的长度
            // demo(1,2,3,4,5)

    //结果为:1 Array(4) 

2:与解构使用 

           // let [a,...b]=[1,2,3,4,5]
           // console.log(a,b)

  //最终结果为 1 (4) [2, 3, 4, 5] 记得这里的三点运算符前面不用加数组变量名称  否则会报错

3:与数组解构使用 函数传对象 

            // function demo({username,password}){
                //  console.log(username,password)
             // }
             // demo({username:'root',password:'1234'})

//最终解构成root 1234  

4:用...输出数组

                // const arr=[1,2,3,4]
             // console.log(...arr)      

 //最终结果为 1 2 3 4 

5:合并数组

            // const arr1=[1,2,3,4]
             // const arr2=[5,6,7,8]
             // const arr3=[...arr1,...arr2]
             // console.log(arr3)

 最终结果为   [1, 2, 3, 4, 5, 6, 7, 8]

6:将类数组转为真正的数组

             //第一步先获取div的属性值
             // const tark = document.querySelectorAll('div')
             // //这里需要定义一个数组的变量名称
             // const arr=[...tark]
             // console.log(arr)

//最终结果为 [div, div, div] 

与上内容不同型

             // const str="12345"
             // console.log([...str])         

     //最终结果为  ['1', '2', '3', '4', '5']

7,练习复制

            // const arr=[1,2,3,4,5]
             // let arr1=[...arr]
             // console.log(arr1)

 //最终结果为  [1, 2, 3, 4, 5]

与上内容不同型

             //  arr1[0]=7;
             // console.log(arr1);

最终结果为 [7, 2, 3, 4, 5] 

将上面的内容通过打印对比区别

console.log(arr,arr1)

 最终结果为 [1, 2, 3, 4, 5] [7, 2, 3, 4, 5]

结论:复制是不会改变原本的内容,只会改变当前的内容

 8:创建一个函数:用扩展运算符计算两个数的和

           // function demo(a,b){
            //     return a+b
            // }
            // let tem=demo(1,2)
            // console.log(tem)

 //最终结果为 3 

与上内容不同型

         // function demo(a,b){
            //     return a+b
            // }
            // const arr1=[1,2]
            // const arr2=[3,4]
            // console.log(demo(...arr1),demo(...arr2))

 最终结果为 3 7

补充点:Array的扩展方法  ...迭代器  三点运算符具有迭代器

ES6内置对象

 1:Array.from() 将伪数组或可遍历对象转换为真正的数组  

         // const str = {
            //     0: 'a',
            //     1: 'b',
            //     length: 4,
            // }
            // console.log(Array.from(str));

结果如下: 

      //返回的值为
            //0: "a"
            // 1: "b"
            // 2: undefined
            // 3: undefined
            // length: 4

 与上内容不同型

             // let str='1234'
            // const arr=Array.from(str)
            // console.log(arr);

打印其结果为   ['1', '2', '3', '4']   将字符串转变为数组

2:array.find返回数组符合条件第一个元素的值

             // const arr=[1,2,3,4,5]
            // let num=arr.find(item=>item==2);
            // console.log(num)

 最终结果为2

3:array.every( )每一个都符合条件,有一个不符合的那么返回的是false ,如果都符合那么返回的是true

         const arr1 = [10,20,30];
            const flag =arr1.every((item)=>{
                return item>=10;
            })
            console.log(flag);

最终结果为: true   若不是每一个都是大于指定的数值那么就返回false

 与上内容不同型

            // const arr1=[3,5,7,8]
            // let nums=arr1.find(item=>item==3);
            // console.log(nums)

     //最终结果为 3

 与上内容不同型

找数组包对象

// const arr=[
            //         {realname:"张三1",age:19},
            //         {realname:"张三28",age:14},
            //         {realname:"张三3",age:15},
            //         {realname:"张三4",age:17},
            // ]
            // console.log(arr.find(item=>item.age==14))

 //最终结果为 {realname: '张三28', age: 14}

3:array.findindex找到符合条件的第一个元素的索引 

        // const arr=[
            //         {realname:"张三1",age:19},
            //         {realname:"张三28",age:14},
            //         {realname:"张三3",age:15},
            //         {realname:"张三4",age:17},
            // ]
            // //item是形参   arr.findIndex  //注意findIndex中的I要大写否则会报错
            // console.log(arr.findIndex(item=>item.age==15));

 //最终结果为  2  打印初始是以0开始,按照数组下标计算 

4:array.includes():找出某个数组是否包含给定的值。

        // const arrt=[1,2,3,4,5,6]
            // console.log(arrt.includes(5))//直接在里面加值(这里不需要使用箭头函数)

  //符合条件的返回的是true 不符合的则false

5, startsWith和endsWith用法

         //startsWith():表示参数字符串是否在原字符串的头部,返回布尔值
           // let str = 'hello pleate';
           //  console.log(str.startsWith('hello'))

//返回的值是true

6,endsWith():表示参数字符串是否在原字符串的尾部,返回布尔值

          // let str = 'hello pleate';
          // console.log(str.endsWith('pleate'))

//返回的值是true ,若是hello便是返回false

补充知识点:

1.Object.values()//可以获取

           const spec = {size:'40cm*40cm',color:'黑色'}
            //所有的属性值回调
            console.log(Object.values(spec));

最终实现结果为:['40cm*40cm', '黑色']

//接着上面的例子:

document.querySelector('div').innerHTML=Object.values(spec).join('/');

最终实现结果为:40cm*40cm/黑色

2,将伪数组转换为真数组

           const lis = document.querySelectorAll('ul li')

            // console.log(lis);
            //打印结果为 [li, li, li]
            //lis.pop()//报错
            const liss = Array.from(lis);
            liss.pop()
            console.log(liss);

最终输出结果为:[li, li] 

模板字符串

1,模板字符串的用法

    // function demo(){
            //     return 'tabt';
            // }
            // let es6="es6!";
            // let str=`hello,${es6},${demo()}`
            // console.log(str);

    //最终结果为   hello,es6!,tabt

灵活运用项目的实战案例

案例名称:找到一组同学中考试分数及格的第一个同学并输出到页面上。

html结构内容部分:

           <ul id="scroce">
			
		    </ul>
        <hr>
		<h1>第一个及格的同学是:</h1>
		<p id="name"></p>

 js实现内容部分:

	const scroce=[
				{realname:'张三',scroe:60},
				{realname:'李四',scroe:70},
				{realname:'王五',scroe:80},
				{realname:'王三',scroe:50},
			]
			let str='';
			let Names;
			for(var i=0;i<scroce.length;i++){
			    str=str+`<li>姓名:${scroce[i].realname},分数:${scroce[i].scroe}</li>`
			}
			document.getElementById('scroce').innerHTML=str;
			Names=scroce.find(item=>item.scroe==60);
			document.getElementById('name').innerHTML=`姓名:${Names.realname},分数:${Names.scroe}`;

最终实现效果:

案例名称:找出大于指定年龄(页面input框接收)的第一个人,并输出这个人的位置

HTML结构部分

        <ul id="ages">
		
		</ul>
		<hr>
		
		<input type="text" placeholder="请输入年龄" id="age">
		<input type="button" value="查找" id="findes">
		<p id="wb">与<span></span>年龄相等的人的位置:<span></span></p>

js实现内容部分:

	const Person =[
			       {realname:'张三',age:19},
			       {realname:'李四',age:20},
			       {realname:'王五',age:23},
			       {realname:'张思',age:15},			
			]
			let str='';
			let findes='';
			for(var i=0;i<Person.length;i++){
				//通过循环,利用字符串连接内部的存储数据
				str=str+`<li>姓名:${Person[i].realname},年龄:${Person[i].age}</li>`;
			}
			//获取ul内的id属性添加值ul内部li元素中的值
			document.getElementById('ages').innerHTML=str;
			//获取点击按钮属性 赋给节点
			let ages=document.getElementById('findes');
			//设置监听事件
			ages.addEventListener('click',()=>{
				let nums;
			//获取表单文本内的数据
			 findes  = document.getElementById('age').value;
			 //通过点击按钮 去查找出第一个符合条件的数组成员的位置   item指的是当前的数组中的值  利用箭头函数去判断
			  nums=Person.findIndex(item=>item.age==findes);
			 //上面的判断会返回两种结果,一种是0,另一种是-1
			 //如果上面的执行判断符合条件那么就做下面的if判断语句
			 if(nums==-1){
				 //若nums是-1便是假 则打印在文本的内容如下:
				document.getElementById('wb').innerHTML='没有该值';
			 }else{
				 //若nums是0便是真  则打印在文本的内容如下:
			      nums=nums+1;
				 document.getElementById('wb').innerHTML=`与${findes}年龄相等的人的位置:${nums}`;
			 }
			})

案例实现部分

总结部分:上面两个实战案例是在工作中常用到的,非该内容,但功能一样;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

共创splendid--与您携手

鼓励会让我为您创造出更优质作品

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值