博客列表 >箭头函数的应用场景和rest,sprend参数的使用方法;2. 获取dom元素的方式;classList对象与dataset对象的应该场景

箭头函数的应用场景和rest,sprend参数的使用方法;2. 获取dom元素的方式;classList对象与dataset对象的应该场景

a.
a.原创
2021年01月03日 17:36:49932浏览

rest 和 spredad

  • 在函数的形参变量前加上“…”,将传递的参数变成一个集合
  • 在函数的参数中就是…rest 归并
  • 在函数的调用的参数列表中就是…sprend 展开
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. //rest
  11. function fun(...arr) {
  12. console.log(arr);
  13. }
  14. arr = [5, 7, 5, 2, 1, 9];
  15. //spredad
  16. fun(...arr);
  17. </script>
  18. </body>
  19. </html>

箭头函数

箭头函数应用场景

  1. 当参数只有一个的时候:()可以省略,如果没有参数反而不能省
  2. 当有多个参数时,()圆括号必须要写
  3. 当有多条语句时,函数体的{}大括号不能省
  4. 如果函数体只有一条语句时可以省略大括号
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>箭头函数</title>
  7. </head>
  8. <body>
  9. <script>
  10. let name = "小米11";
  11. let price = 3999;
  12. let num = 500;
  13. // let fun = function (name, price, num) {
  14. // return [name, price, num];
  15. // };
  16. //1. 当参数只有一个的时候:()可以省略,如果没有参数反而不能省
  17. //2. 当有多个参数时,()圆括号必须要写
  18. let fun = (name, price) => ["苹果12", name, price];
  19. let res = fun(name, price);
  20. res.forEach((item) => console.log(item));
  21. //3. 当有多条语句时,函数体的{}大括号不能省
  22. //4. 如果函数体只有一条语句时可以省略大括号
  23. let fun1 = (name, price) => {
  24. console.log(name);
  25. return ["苹果12", name, price];
  26. };
  27. let res1 = fun1(name, price);
  28. res1.forEach((item) => console.log(item));
  29. //返回对象时要用()包住
  30. let obj = name => ({ 型号: name, 价格: 3999 });
  31. let res2 = obj(name);
  32. for (let key in res2) console.log(res2[key]);
  33. </script>
  34. </body>
  35. </html>

获取DOM元素的方式

1.传统方式

  1. //标签获取
  2. document.getElementsByTagName("li");
  3. //id获取
  4. document.getElementById("list");
  5. //class获取
  6. document.getElementsByClassName("item");

2.CSS选择器方式

  • 返回匹配元素集合的第一个值
    document.querySelector()

  • 返回匹配元素集合
    document.querySelectorAll()

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <ul id="list">
  10. <li class="item">item1</li>
  11. <li class="item">item2</li>
  12. <li class="item">item3</li>
  13. <li class="item">item4</li>
  14. <li class="item">item5</li>
  15. <li class="item">item6</li>
  16. </ul>
  17. <script>
  18. //1. 返回匹配的元素集合中的第一个元素,(返回第一个)
  19. let li = document.querySelector(".itme");
  20. //2. 返回匹配的元素集合
  21. let list = document.querySelectorAll(".item");
  22. //返回nodelist,并不是数组
  23. list.forEach((item) => (item.style.color = "red"));
  24. //可使用伪类选择器
  25. let first = document.querySelectorAll(".item:last-of-type");
  26. first[0].style.color = "blue";
  27. //标签获取
  28. document.getElementsByTagName("li");
  29. //id获取
  30. document.getElementById("list");
  31. //class获取
  32. document.getElementsByClassName("item");
  33. </script>
  34. </body>
  35. </html>

classList对象与dataset对象

  • classlist对象用来操作元素的类,增加、修改、移除、判断
  • dataset对象用来操作自定义属性

classlist

  • 添加
    p.classList.add('red');
  • 移除
    p.classList.remove('red');
  • 替换
    p.classList.replace('red','blue')
  • 自动替换

动态切换样式,如果已有则删除,没有则添加
p.classList.toggle('red');

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. .red {
  9. color: red;
  10. }
  11. .blue {
  12. background-color: blue;
  13. }
  14. .violet {
  15. background-color: violet;
  16. }
  17. .pink {
  18. color: lightpink;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <p class="red">我是p标签</p>
  24. <!-- <p>我是p标签</p> -->
  25. <script>
  26. let p = document.querySelector("p");
  27. //添加蓝色背景
  28. //p.classList.add("blue");
  29. //移除红色字体
  30. //p.classList.remove("red");
  31. //替换背景颜色
  32. //p.classList.replace("blue", "violet");
  33. //动态切换样式
  34. p.classList.toggle("red");
  35. </script>
  36. </body>
  37. </html>

dataset

  • 访问自定义属性
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div
  10. class="user"
  11. data-email="php@php.cn"
  12. data-myid="q110"
  13. data-my-id="a1001"
  14. ></div>
  15. <script>
  16. let user = document.querySelector(".user");
  17. //dataset专门用来访问自定义的标签属性
  18. // alert(user.dataset.email);
  19. //如果自定属性名中像data-my-id访问时需要将id首字母大写
  20. //如果访问采用驼峰写法访问名为data-myid的也是访问不到的
  21. //要么不加横杠全小写,要么加了访问横杠后第一个字母大写
  22. alert(user.dataset.myId);
  23. alert(user.dataset.myid);
  24. </script>
  25. </body>
  26. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议