欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-03 21:47:04
...

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);

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

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"});

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

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]);}

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

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>

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

  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>

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

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>