博客列表 >浅谈JS函数和获取dom元素的方式

浅谈JS函数和获取dom元素的方式

陈强
陈强原创
2020年12月31日 15:54:04708浏览

函数的基本概念

  • 函数是代码复用的手段

  • 函数使用与变量一样分二步:声明、调用

  1. //声明
  2. function demo() {
  3. console.log('函数名:',demo.name);
  4. }
  5. //调用
  6. demo();
  • 函数可以增加参数,并设置默认值
  1. //声明
  2. function demo(name = 'jack') {
  3. console.log('我叫:',name);
  4. }
  5. //调用
  6. demo();
  7. //传参改变默认值
  8. demo('Tom');
  • 小案例-封装加法函数
  1. function add(a,b,c) {
  2. console.log('计算结果:',a+b+c);
  3. }
  4. //调用
  5. add(4,5,6);
  6. //输出
  7. 计算结果:12
  • rest剩余参数 :当不确认参数有多少的时候

归并、展开

rest剩余参数 :当不确认参数有多少的时候

归并,存在于参数中

  1. function demo2(...arr) {
  2. console.log(arr);
  3. }
  4. demo2(1, 2, 3, 4, 5);
  • 用rest剩余参数封装加法函数
  1. function add1(...arr) {
  2. // console.log(arr);
  3. let res = 0;
  4. for (let num of arr) {
  5. res += num;
  6. }
  7. console.log('计算结果:',res);
  8. }
  9. add1(1, 2, 3, 4, 5, 6, 7);
  10. //输出
  11. 计算结果:28

展开,存在于调用结果中

  1. let arr = [1,2,3,4,5,6];
  2. console.log(...arr);
  • 函数返回值:默认是单值;如果要返回多值,用引用类型(对象、数组)
  1. function demo5() {
  2. return {
  3. status: 1,
  4. message: "成功",
  5. };
  6. }
  7. let res = demo5();
  8. console.log(res.status, res.message);

箭头函数

  • 箭头函数分为胖箭头=>和瘦箭头->

    • 当参数只有一个时,圆括号可以省略,如果没有参数,反而不能省
    • 当有多个参数时, 圆括号必须要写
    • 当有多条语句时,函数体的大括号不能省
    • 如果函数体只有一条语句时,可以省略大括号
  1. let name = 'jack';
  2. let age = 18;
  3. let gender = 'man';
  4. let num;
  5. //完全写法
  6. function demo6() {
  7. return [name, age, gender];
  8. }
  9. res = demo6();
  10. console.log(res);
  11. //用箭头函数简写,可以省略function 和return及{}
  12. let demo6 = () => [name, age, gender];
  13. res = demo6();
  14. console.log(res);
  15. //如果只有一个参数可以省略()
  16. let demo6 = num => [name, age, gender];
  17. res = demo6(num);
  18. console.log(res);

获取dom元素

用css选择器获取元素

  1. <style>
  2. .item {
  3. color: yellow;
  4. }
  5. </style>
  6. <ul id="list">
  7. <li class="item">item1</li>
  8. <li class="item">item2</li>
  9. <li class="item">item3</li>
  10. <li class="item">item4</li>
  11. <li class="item">item5</li>
  12. <li class="item">item6</li>
  13. </ul>
  14. // tag
  15. console.log(document.getElementsByTagName('li'));
  16. // id
  17. console.log(document.getElementById('list'));
  18. // class
  19. console.log(document.getElementsByClassName('item'));
  20. //获取item类的第一个元素,并修改颜色为red
  21. const li = document.querySelector('.item');
  22. console.log((li.style.color = "red"));
  23. //获取item类的所有元素,并修改颜色为blue
  24. const lis = document.querySelectorALL('.item');
  25. //获取到的lis不是真正的数组,用...rest转化
  26. let arr = [...lis];
  27. //1.for of 遍历数组
  28. for(let item of arr) {
  29. console.log(item.style.color = 'blue');
  30. }
  31. //用foreach遍历数组
  32. arr.foreach(item=>{
  33. console.log(item);
  34. item.style.color = 'blue';
  35. })
  36. //用伪类获取第三个li 并修改颜色为green
  37. const three = document.querySelector(".item:nth-of-type(3)");
  38. console.log((three.style.color = "green"));

classList对象

  1. <style>
  2. .red {
  3. color: red;
  4. }
  5. .blue {
  6. color: blue;
  7. }
  8. </style>
  9. <p>开始学习JS了,有一点点懵啊,还需要多写多思考!</p>
  10. //给P标签增加class属性red
  11. p.classlist.add('red');
  12. //修改P标签class属性为blue
  13. p.className = 'blue';
  14. p.classlist.replace('red','blue');
  15. //toggle():动态切换样式,如果已有则删除,如果没有则添加
  16. p.classList.toggle('red');

dataset对象

  1. <div class="user" data-email='tp@php.cn' my-gender-sex="男">个人简介</div>
  2. <script>
  3. const user = document.querySelector('.user');
  4. user.id = 'A005';
  5. console.log(user.id);
  6. // dataset对象专用于访问自定义的标签属性
  7. console.log(user.dataset.email);
  8. //如果data对象访问的自定义标签属性含有-符号的,访问是去掉-,并-符号后边单词的第一个字母大写
  9. console.log(user.dataset.myGenderSex);
  10. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议