博客列表 >箭头函数及classList对象与dataset对象

箭头函数及classList对象与dataset对象

手机用户1607314868
手机用户1607314868原创
2020年12月31日 13:49:10609浏览

箭头函数

函数是代码复用的手段
1.声明

  1. function sum(){
  2. console.log('函数名:',sum.name);
  3. }

2.调用
sum();

rest和是spread使用
  1. <script>
  2. function demo(a,b,c,d){
  3. console.log(arguments);
  4. }
  5. demo(1,2,3,4);
  6. function demo2(...rest){
  7. console.log(rest);
  8. //求和
  9. rest.reduce(function(prev,curr){
  10. return prev + curr;
  11. });
  12. }
  13. demo2(1,2,3,4,5);
  14. ...rest用来接收不确定的参数个数
  15. let spread=[1,2,3,4,5,6,7,8];
  16. //无法求和,因为 ...rest会将spread当成一个参数,所以应该将 spread 展开依次放入
  17. demo2(spread);
  18. //如此便可将arr1放入demo2函数中
  19. demo2(...spread);
  20. </script>

总结:

  • 当不确定参数个数,…rest表示所有参数的对象
  • 在函数的参数中就是 …rest归并
  • 在函数调用的参数列表中 …spread展开
    匿名函数
    顾名思义就是没有名字的函数
  1. let demo3=function(){
  2. return [1,2,3];
  3. }
  4. res=demo3();
  5. res.forEach(function(item){
  6. console.log(item);
  7. });
箭头函数

箭头函数是用来简化匿名函数的语法糖
语法:
let demo=()=>{}

  1. let demo4=(id,name,model)=>{
  2. console.log(id,name,model);
  3. }
  1. 如果没有参数,小括号必须有
    let demo5=()=>[‘1’,’2’,’3’];
  2. 如果函数体只有一条语句,可以不写return 和 {}
  3. 只要有一个参数,参数的小括号可以不写
    let demo5=name=>[‘23’,name,’你好’];
    调用:res=demo5(name);
  4. 有多个参数则小括号必须存在
    5.如果返回一个对象,因为函数的{}会和对象的{}混淆,需要用()包裹起来
  1. let demo=(id,name,model)=({
  2. id:id,name:name,model:model
  3. });
  4. res=demo(id,name,model);

注意:

  • 当参数中有一个时,圆括号可以省略,如果没有参数,反而不能省
  • 当有多个参数时,圆括号必须要写
  • 当有多条语句时,函数体的大括号不能省
  • 如果函数体只有一条语句时,可以省略大括号

    获取dom元素的方式

    document.querySelector()获取元素
  1. <ul id="list">
  2. <li class="item">item1</li>
  3. <li class="item">item2</li>
  4. <li class="item">item3</li>
  5. <li class="item">item4</li>
  6. <li class="item">item5</li>
  7. <li class="item">item6</li>
  8. </ul>
  9. <script>
  10. // 用css选择器来获取元素
  11. // 返回匹配的元素集合中的第一个元素
  12. const li= document.querySelector('.item');
  13. //返回匹配的元素集合所有成员 nodelist类数组 类型像数组但又不是
  14. const lis=document.querySelectorAll('.item');
  15. //类数组转为数组 使用 ...sprend语法转为真正的数组
  16. let list=[...lis];
  17. list.forEach(item=>console.log(item));
  18. </script>

classList对象与dataset对象

classList用来操作class的,包括class类名的增删改

  1. <style>
  2. .red{
  3. color:red;
  4. }
  5. .bg{
  6. backgroudn-color:greenyellow;
  7. }
  8. .bule{
  9. color:blue;
  10. }
  11. </style>
  12. <body>
  13. <p>
  14. 你好
  15. </p>
  16. <script>
  17. const p=document.querySelector('p');
  18. //给p标签增加class类名 red bg
  19. p.classList.add('red','bg');
  20. //将p标签的类名bg去掉
  21. p.classList.removed('bg');
  22. //将p标签的class类名red改为blue
  23. p.classList.replace('red','blue');
  24. //toggle的属性像开关一样,p标签没有red则添加 有则去除
  25. p.classList.toggle('red');
  26. </script>
  27. </body>

dataset属性用来给标签添加自定义属性

  1. <body>
  2. <div class="user">
  3. 自定义属性
  4. </div>
  5. <script>
  6. const user=document.querySelector('.user');
  7. user.id='a001';
  8. //可以访问但在div上不显示该属性,因为不是预定义属性
  9. user.email='@qq.com';
  10. //如若需要div显示自定义属性需要用到dataset。在标签表现形式为data-email
  11. user.dataset.email="@163.com";
  12. //<div class='user' data-email='@163.com'></div>
  13. //如果自定义属性名称较长如下,获取该属性的值,属性名称采用小驼峰形式
  14. //<div class='user' data-email='@163.com' data-my-gender="男" ></div>
  15. //获取自定义的值
  16. console.log(user.dataset.myGender);
  17. </script>
  18. </body>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议