Blogger Information
Blog 18
fans 1
comment 0
visits 17191
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
循环语句与函数
α清尘
Original
586 people have browsed it

循环语句的六种形式

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


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>

控制台打印:

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!