博主信息
博文 37
粉丝 1
评论 0
访问量 41452
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
es6新特点:箭头函数\rest\spread\classList对象与dataset对象的总结与应用
Jason Pu?
原创
983人浏览过

一:箭头函数:

箭头函数是用来简化匿名函数的语法糖,将普通函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体
基础语法:
(arg1,arg2)=>{function body};
例如:

  1. let multiply = (num1,num2)=>{return num1*num2};
  2. console.log(multiply(12,5));//60

如果只有一条语句,可以省略函数的”{}”

  1. let add = (num1,num2)=>num1+num2;
  2. console.log(add(55,33));//88

如果只有一个参数可以连()都省了,如果没有参数,则要保留()

  1. let echoName = name => `我的名字是${name}`;
  2. console.log(echoName('Jasper'));//我的名字是Jasper

二:rest归并/sprend展开

有时候不知道函数当中到底要传多少个参数,可以使用…rest归并,或在函数调用参数时用…spread展开数组
例如

  1. let sum1 = (a,b)=>a+b;
  2. console.log(sum1(1,2,3,4,5,6));//结果是3,不会因多传参数而报错,但多余的实参并没作用

针对上例,我们可以在定义函数时使用Rest参数,Rest参数的操作符表示为3个点 … ,直白地讲,它的意思就是“把剩余的参数都放到一个数组中”。

  1. let sum2 = (...rests)=>{let sum = 0;for(let rest of rests)sum+=rest;return sum};
  2. console.log(sum2(1,2,3,4,5,6));//21

用…spread在函数中展开数组:

  1. const arr1 = [1,3,5,7,9];
  2. let arrSum = arr =>Math.max(...arr);
  3. console.log(arrSum(arr1));//9

三:获取DOM元素的方式

1:传统的方式:

  1. document.getElementById //ID选择器
  2. document.getElementsByClassName //类名选择器
  3. document.getElementsByName //name选择器
  4. document.getElementsByTagName //标签选择器

2:用css选择器来获取元素
2.1:querySelector:返回匹配的元素集合中的第一个元素,(返回一个)
例如用querySelector操作以下html代码中第一个li:

  1. <ul>
  2. <li>1</li>
  3. <li>2</li>
  4. <li>3</li>
  5. <li>4</li>
  6. <li>5</li>
  7. </ul>

js代码如下:

  1. li = document.querySelector("li");
  2. li.style.color="red";//如图第一个li变红了


2.2:querySelectorAll:返回匹配的元素集合所有成员
例如操作所有li的背景色:

  1. ls=document.querySelectorAll("li");
  2. ls.forEach(element => {
  3. element.style.backgroundColor="red";
  4. });

所有li全部背景变红了:

四:classList对象和自定义类:

1.classList:classList专门用来操作类class,通过自带的一些方法可以操作class的属性

方法 说明
classList.add() 添加
classList.remove() 删除
classList.replace(old,new) 替换
classList.replace() 切换

写四个盒子来举例说明:
html/css代码如下

  1. <style>
  2. .red{
  3. background-color: red;
  4. }
  5. .green{
  6. background-color: green;
  7. }
  8. .blue{
  9. background-color: blue;
  10. }
  11. div{
  12. height: 5em;
  13. width:5em;
  14. margin: .5em;
  15. cursor: pointer;
  16. text-align: center;
  17. line-height: 5em;
  18. border: 1px solid #000;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div class="ad ">点击添加</div>
  24. <div class="rm red">点击移除</div>
  25. <div class="tg ">点击切换</div>
  26. <div class="rp blue" >点击替代</div>
  27. <script>

js代码如下:

  1. <script>
  2. const ad = document.querySelector(".ad");
  3. const rm = document.querySelector(".rm");
  4. const tg = document.querySelector(".tg");
  5. const rp = document.querySelector(".rp");
  6. ad.onclick=()=>ad.classList.add("green");//点击后添加.green
  7. rm.onclick=()=>rm.classList.remove("red");//点击后移除.red
  8. tg.onclick=()=>tg.classList.toggle("red");//多次击会来回切换.red
  9. rp.onclick=()=>rp.classList.replace("blue","green");//点击后把class里面的.blue切换成.green
  10. </script>

运行后点击前:

点击后:

2.自定义 datast
dataset对象专用于访问自定义的标签属性,在自定义属性前面加上data-,便可以用“dataset.自定义标签名”,进行访问,如果自定义的标签是两个单词组成且中间有加”-“,访问时要省略掉”-“,并把第二个单词首字母进行大写
例如:

  1. <body>
  2. <div class="user" data-my-email="jasper@163.com"></div>
  3. </body>
  4. <script>
  5. const em = document.querySelector(".user");
  6. console.log(em.dataset.myEmail);//jasper@163.com
  7. </script>
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学