博客列表 >js基础知识二(分支、循环遍历、访问属性、增删)

js基础知识二(分支、循环遍历、访问属性、增删)

暮光薄凉
暮光薄凉原创
2021年10月07日 16:35:53570浏览

js基础知识二

1.解构赋值,将多个值/引用,解析到单值变量中,针对数组,对象
  1. // 数组解构
  2. let [name,email] = ["张三","aaa@ad.com"];
  3. console.log(name,email);
  4. // 更新数据
  5. [name,email] = ["李四","bbb@ad.com"];
  6. console.log(name,email);
  7. // 参数不足:使用默认
  8. [name,email,age = 20] = ["李四","bbb@ad.com"];
  9. console.log(name,email,age);
  10. // 参数过多:使用归并参数
  11. let [a,b,c,d,...e] = [1,2,3,4,5,6,7,8];
  12. console.log(a,b,c,d,e);
  13. // 数值交换
  14. let x = 10;
  15. let y = 20;
  16. [x,y] = [y,x];
  17. console.log("x=" + x, "y=" + y);

数组解构

2.对象解构
  1. // 对象解构
  2. let {id, a1 , b1} = { id:1, a1:2, b1:3 };
  3. console.log(id,a1,b1);
  4. // 数据更新
  5. ({id, a1 , b1} = { id:2, a1:"数据更新", b1:6 });
  6. console.log(id,a1,b1);
  7. // 使用别名防止命名冲突
  8. let {id: nameid, a1:emaila , b1:ageb} = { id:"王五", a1:"2@.com", b1:3 };
  9. console.log(nameid,emaila,ageb);
  10. // 参数过多:使用归并参数
  11. let { ...r } = { a:1, b:2, c:3 };
  12. console.log(r);
  13. //解构赋值应用:简化传参
  14. function getUser({ id, name, email }){
  15. console.log(id, name, email);
  16. }
  17. getUser({ id:1, name:"张三", email:"aa@a.com"});

对象解构

3.流程控制

判断控制
单分支:if( 判断条件 ){ 执行语句 }
双分支:if( 判断条件 ){ 执行语句 }else{ 执行语句 }
多分支:if( 判断条件 ){ 执行语句 }else if( 条件 ){ 执行语句 }

  1. // 多分支:
  2. switch( 判断条件 ){
  3. case 判断结果1:
  4. 执行语句1
  5. break //结束向下执行
  6. default //当上面的条件都不满足时执行下面的语句
  7. 执行语句;
  8. }
  9. //循环遍历:while, do while, for ,for of(遍历数组),forEach()(遍历数组)
  10. let lang = ['html','css','js','php'];
  11. let i = 0;
  12. while(i<lang.length) {
  13. console.log(lang[i]);
  14. i = i + 1 ;
  15. }
  16. console.log("-----do-while循环--------");
  17. i = 0;
  18. do{
  19. console.log(lang[i]);
  20. i = i + 1 ;
  21. }while(i>lang.length);
  22. console.log("-----for循环---------");
  23. for( i=0; i<lang.length; i++ ){
  24. console.log(lang[i]);
  25. }
  26. console.log("-------for-of循环------");
  27. for( item of lang ){console.log(item);}
  28. console.log("------forEach--------");
  29. lang.forEach(function(item,index,array){
  30. console.log(item,index,array);
  31. });
  32. console.log("------forEach简化--------");
  33. lang.forEach(element => {
  34. console.log(element);
  35. });
  36. console.log("------for-in--------");
  37. // for-in : 遍历对象
  38. // for(属性/键名 in 对象){}
  39. let user = { id:1, "my name":"li", age:20};
  40. for(let key in user) {console.log(user[key]);}


4.document 代表当前 html 文档对象

document.querySelectorAll:返回满足条件的元素集合
document.querySelector:返回满足条件的元素集合中的第一个,通常用来获取某一个元素
document.forms:获取表单元素,使用点语法获取相对应的表单元素值,name 或者 id

快捷方式:
document.body
document.head
document.title

  1. <ul class="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. <li class="item">item7</li>
  9. <li class="item">item8</li>
  10. </ul>
  11. <script>
  12. const items = document.querySelectorAll(".list > .item");
  13. console.log(items);
  14. items.forEach(item => (item.style.color = "red"));
  15. // 获取第一个子元素
  16. console.log(items[0]);
  17. items[0].style.backgroundColor = "#7777";
  18. let first = document.querySelector(".list > .item");
  19. console.log(first);
  20. </script>

  1. <form action="" id="form">
  2. <input type="email" name="email" id="email" value="aaaa@aa.com">
  3. <button>提交</button>
  4. </form>
  5. <script>
  6. const form = document.forms.form.email.value;
  7. console.log(form);
  8. </script>

5. dom树遍历

dom:看到的所有内容都是“节点”,节点类型:元素,文本,文档

  1. ul = document.querySelector(".list");
  2. console.log(ul.childNodes);查看所有节点(不区分类型,包括空格)
  3. console.log(ul.children);查看相应节点,ul.children是类数组
  4. 转换真数组的方式:
  5. Array.from(ul.children)
  6. [...ul.children]
  1. ul.firstElementChild 获取节点第一个子元素
  2. ul.firstElementChild.nextElementSibling : 获取下一个兄弟元素
  3. ul.lastElementChild : 获取前一兄弟节点
  4. ul.lastElementChild.previousElementSibling : 获取最后一个元素节点
6. dom元素增删

document.createElement :创建元素
.textContent : 添加文本内容
.append(div) : 添加元素到页面中渲染

.insertAdjacentElement(“插入位置”,元素)
四个插入位置
afterBegin: 开始标签之后,第一个子元素
beforeBegin: 开始标签之前,是它的前一个兄弟元素
afterEnd: 结束标签之后,它的下一个兄弟元素
beforeEnd: 结束标签之前,它的最后一个子元素

  1. let div = document.createElement("div");
  2. let p = document.createElement("p");
  3. p.textContent = "hello world";
  4. document.body.append(div); // 把div添加到body中
  5. div.append(p);
  6. p.append("真是一个添加内容");
  7. div.insertAdjacentElement("beforebegin",item);
7. 自定义属性

dataset对象:用于获取用户的自定义属性
自定义属性必须使用data-为前缀,访问时前缀不需要写

  1. <div class="div" data-email="admin@aa.com" data-index="5"></div>
  2. <script>
  3. const div = document.querySelector("#div");
  4. console.log(div.dataset.email);
  5. </script>
8. css对象

.classList.add(“”); // 添加css
.classList.remove(“”); // 删除css
.classList.replace(“red”,”blue”); //更换css

  1. <h2>这是一个css对象</h2>
  2. <style>
  3. .red{color: red;}
  4. .bgc{color: blue;}
  5. </style>
  6. <script>
  7. const h2 = document.querySelector("h2");
  8. h2.classList.add("red"); // 添加css
  9. h2.classList.remove("red"); // 删除css
  10. h2.classList.replace("red","blue"); //更换css
  11. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议