博客列表 >循环语句与函数

循环语句与函数

α清尘
α清尘原创
2020年11月07日 16:25:32593浏览

循环语句的六种形式

循环是只要满足条件,将不断执行重复的语句。


1. while()循环 入口判断型

  1. // while() 入口判断型
  2. const a=[1,2,3,4,5];
  3. console.log(a.length);
  4. // 循环变量初始化
  5. let i=0;
  6. while(i<a.length){
  7. console.log(a[i])
  8. // 自增
  9. i++;
  10. }

2. do…while()循环 出口判断型

出口判断,至少执行一次循环体;

  1. i=0;
  2. do{
  3. console.log(a[i]);
  4. i++;
  5. }
  6. while(i<a.length);

3. for() 计数型

可视为while的简化;
语法: for(循环变量的初始化;环条件;新循环条件){…}

  1. // for循环
  2. for(i=0;i<a.length;i++){
  3. console.log(a[i])
  4. }

4. for…in

遍历对象中允许遍历的属性;
语法: for(键名/属性 in 对象){…}

  1. // for...in
  2. const str={
  3. id:2,
  4. name:"admin",
  5. pwd:123456,
  6. };
  7. for(let key in str){
  8. console.log(key,"=>",str[key])
  9. }

5. forEach() 遍历对象

  1. // forEach 遍历对象
  2. a.forEach(function(item,key,a) {
  3. console.log(item,key,a);
  4. });

6. for…of() 直接取出数组中的值

  1. // for...of 不能遍历自定义对象
  2. for(let v of a){
  3. console.log(v)
  4. }

函数的定义形式

函数的声明

  1. function 函数名(参数列表){
  2. 函数体;
  3. }

ES6的新特性:rest/sprend运算符

rest剩余运算符
…rest将剩余参数全部打包到一个数组变量中;
rest操作符只能在数组解构和参数定义中使用;可以用于获取函数调用时传入的参数;

  1. <script>
  2. function num(...shu){
  3. console.log(shu) // ["admin","name"]
  4. console.log(shu.length) // 2
  5. }
  6. //调用函数
  7. num("admin","name")
  8. </script>

sprend展开运算符
主要通过接口,外部请求或其他来源,接收到数组;
sprend运算符用于数组的构造,合并,在函数调用时使用数组填充参数列表;
实例:

  1. //传递数据代替多个字符串的形式
  2. function test(a,b,c){
  3. console.log(a);
  4. console.log(b);
  5. console.log(c);
  6. }
  7. var arr = [1, 2, 3];
  8. test(...arr);
  9. //将一个数组插入到另一个数据中
  10. var arr1 = [1, 2, 3,4];
  11. var arr2 = [...arr1, 5, 6, 7];
  12. console.log(arr2);

函数表达式,箭头函数

函数表达式当成匿名函数,主要用在回调方法;匿名函数没有名字,通过把它赋值给一个变量来引用它。
function关键字可以用来在一个表达式中定义一个函数,也可以使用Function构造函数和一个函数声明来定义函数;
例如:let name=function(){}
箭头函数是ES6新增的,用一个胖箭头来定义” => “;
语法:删除function,在参数列表与花括号之间添加一个胖箭头” => “;
如果没有参数也要加圆括号();如果函数体只有一行代码,可以忽略掉花括号{};并且,箭头函数没有自己的this。
实例:

  1. demo2=(name)=>console.log("hello %c%s","color:red",name);
  2. demo2("admin"); //hello admin

Dom元素

dom是document object model(文档对象模型的简称);

获取dom元素的方式;

  1. 通过标签元素获取 document.getElementsByTagName();
  2. 通过获取 document.getElementsByClassName();
  3. 通过id获取 document.getElementById();
  4. 通过name获取 document.getElementsByName();
  5. 通过选择器获取 document.querySelector(),document.querySelectorAll();

实例:

  1. // 通过标签名获取
  2. let divs=document.getElementsByTagName("div");
  3. console.log(divs)
  4. // 通过class类获取
  5. divs=document.getElementsByClassName("item1");
  6. console.log(divs.item(0).innerHTML)
  7. // 通过id获取
  8. divs=document.getElementById("item2")
  9. console.log(divs)
  10. // 通过name获取
  11. divs=document.getElementsByName("a")
  12. console.log(divs)
  13. // 通过选择器来获取
  14. demo=document.querySelector("li")
  15. console.log(demo.innerHTML)

dom元素的遍历方法

遍历元素节点常见的有父节点,子节点,兄弟节点;

遍历元素节点树

  • parentElement 返回当前元素的父元素节点;
  • children 返回当前元素的子节点;
  • childElementCount===children.length返回当前元素子元素的数量;
  • firstElementChild 返回第一个子元素的节点;
  • lastElementChild 返回最后一个子元素的节点;
  • previousElementSibling 返回上一个兄弟元素的节点;
  • nextElementSibling 返回下一个兄弟元素的节点;

实例演示:

  1. <div class="par">
  2. <div class="demo1">item1</div>
  3. <div class="demo2">item2</div>
  4. <div class="demo3">item3</div>
  5. <div class="demo4">item4</div>
  6. <div class="demo5">item5</div>
  7. <div class="demo6">item6</div>
  8. </div>
  9. <script>
  10. const par=document.querySelector(".par");
  11. console.log(par);
  12. // children所有子元素的集合
  13. console.log(par.children);
  14. // 获取子元素的长度
  15. console.log(par.childElementCount);
  16. // 获取第一个子元素
  17. console.log(par.firstElementChild);
  18. // 获取最后一个子元素
  19. console.log(par.lastElementChild);
  20. // 获取指定位置的兄弟元素
  21. console.log(par.children[2].previousElementSibling.innerHTML);
  22. console.log(par.children[2].nextElementSibling.innerHTML);
  23. // Array.from()将一个类数组转换为一个真正的数组
  24. console.log(Array.from(par.children))
  25. Array.from(par.children).forEach((res) =>console.log(res));
  26. // 改变指定元素的文本颜色
  27. Array.from(par.children).forEach((res) =>(par.children[0].style.color="red"));
  28. </script>

结果展示:

classList对象与dataset对象的使用

classList对象实现操作class

classLdist对象的常用属性:
add() 添加一个类名;
remove() 移除类名;
replace() 替换类名;
toggle() 实现元素切换的可见状态;如果被选元素可见,则隐藏元素,如果被元素隐藏,则显示元素;

  1. <style>
  2. .cla{ color:coral}
  3. .big{font-size: 2em; color: crimson;}
  4. .da{ color: cadetblue;}
  5. </style>
  6. <body>
  7. <p class="cla">classList对象实现操作class</p>
  8. <span class="cla">dataset对象的使用</span>
  9. <script>
  10. const p = document.querySelector(".cla")
  11. console.log(p.className);
  12. p.className="da";
  13. p.className="big";
  14. const da=document.querySelector("span")
  15. // 返回元素的类名
  16. console.log(da.classList)
  17. // 添加
  18. da.classList.add("big")
  19. da.classList.add("da")
  20. // 移除
  21. da.classList.remove("big")
  22. // 替换
  23. da.classList.replace("cla","big")
  24. da.classList.replace("big","da")
  25. // toggle()属性实现切换元素的可见状态;
  26. da.classList.toggle("big")
  27. </script>
  28. </body>

dataset对象:处理用户自定义数据属性

dataset对象是用户自定义属性对象,以”data-“为前缀;使用dataset对象获取是忽略”data-“;

实例演示:

  1. <div id="name" data-id="01" data-user-name="admin" data-emile="admin@qq.com">dataset对象的使用</div>
  2. <script>
  3. const d=document.querySelector("#name")
  4. console.log(d.dataset.id)
  5. // 使用连接线命名的多个单词的属性名,使用驼峰命名法来获取;
  6. console.log(d.dataset.userName);
  7. console.log(d.dataset.emile)
  8. </script>

控制台打印:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议