博客列表 >es6新特点:箭头函数\rest\spread\classList对象与dataset对象的总结与应用

es6新特点:箭头函数\rest\spread\classList对象与dataset对象的总结与应用

Jason Pu?
Jason Pu?原创
2020年12月31日 15:44:35775浏览

一:箭头函数:

箭头函数是用来简化匿名函数的语法糖,将普通函数的“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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议