Blogger Information
Blog 37
fans 1
comment 0
visits 32622
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
es6新特点:箭头函数\rest\spread\classList对象与dataset对象的总结与应用
Jason Pu?
Original
773 people have browsed it

一:箭头函数:

箭头函数是用来简化匿名函数的语法糖,将普通函数的“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>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post