Blogger Information
Blog 41
fans 0
comment 0
visits 31038
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
浅谈JS函数和获取dom元素的方式
陈强
Original
702 people have browsed it

函数的基本概念

  • 函数是代码复用的手段

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

  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>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:有空可了解一下IIFE(立即执行函数),有些场景下非常有用
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