Blogger Information
Blog 14
fans 0
comment 0
visits 11501
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
js基础知识二(分支、循环遍历、访问属性、增删)
暮光薄凉
Original
567 people have browsed it

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

Correction status:qualified

Teacher's comments:
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