批改状态:合格
老师批语:解构的应用很多, 特别是一些嵌套的数据,这些可参考一些专业资料查询或了解
解构赋值可以将多值变量(引用),解析到单值变量中
let [uName, uEmail] = ["admin", "abc@qq.com"];
[uName, uEmail] = ["adm_adm", "cbd@qq.com"];
[uName, uEmail, age = 18] = ["admin", "abc@qq.com"];
let [a, b, c, ...d] = [1, 2, 3, 4, 5, 6, 7, 8];
[x, y] = [10, 20];[x, y] = [y, x];
let { id, course, score } = { id: 1, course: "js", score: 90 };
({ id, course, score } = { id: 2, course: "php", score: 100 });
let { uName: myName, uEmail: myEmail } = { uName: "admin", uEmail: "abc@qq.com" };
let { f, g, h = 30 } = { f: 10, g: 20 };
let { ...n } = { a: 1, b: 2, c: 3 };
解构赋值常用于函数的参数
如给定一个用户信息 user,去获取他内部的信息
user = { id: 1, name: "zhangsirui", age: 80 };function getInfo(user) {console.log(user.id, user.name, user.age);}getInfo(user);
user = { id: 1, name: "zhangsirui", age: 80 };function getInfo({ id, name, age }) {console.log(id, name, age);}getInfo(user);
获取 dom 节点
对获取的 dom 节点进行操作
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>dom树的遍历</title></head><body><ul class="list"><li class="items">item1</li><li class="items">item2</li><li class="items">item3</li><li class="items">item4</li><li class="items">item5</li></ul><script>let ul = document.querySelector(".list");//查看所有节点console.log(ul.childNodes);//查看标签节点console.log(ul.children);//ul.children转为数组//Array.from()方法console.log(Array.from(ul.children));// ...展开console.log([...ul.children]);// 获取父元素下的第一个标签元素[...ul.children][0].style.color = "blue";// 可以简写为ul.firstElementChild,这个就是直接获取第一个标签元素了,不需要再加childrenul.firstElementChild.style.backgroundColor = "lightskyblue";// 获取父元素下的最后一个子标签元素ul.lastElementChild.style.backgroundColor = "lightgreen";// 获取下一个兄弟元素,以第一个标签元素为例ul.firstElementChild.nextElementSibling.style.backgroundColor = "yellow";// 获取前一个兄弟元素,以最后一个标签元素为例ul.lastElementChild.previousElementSibling.style.backgroundColor = "violet";</script></body></html>
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>dom元素增</title></head><body><script>// 创建元素// 创建到内存中,页面还不可见let div = document.createElement("div");let p = document.createElement("p");// 标签添加内容:textContentp.textContent = "标签添加内容:textContent";div.textContent = "标签添加内容:textContent";// 添加到页面中// 插入内容,包括元素、文本内容等 append()方法document.body.append(div);div.append(p);p.append("插入内容,包括元素、文本内容等 append()方法");const li = document.createElement("li");li.textContent = "item1";div.append(li);// insertAdjacentElement(四选一位置,要插入的元素)插入元素let hr = document.createElement("hr");let demo = document.createElement("div");demo.textContent = "我是中心";demo.style.backgroundColor = "red";document.body.append(hr, demo);// 起始标签前let bb = document.createElement("div");bb.textContent = "我插入到了中心div起始标签的前面";bb.style.backgroundColor = "yellow";demo.insertAdjacentElement("beforeBegin", bb);// 起始标签后let ab = document.createElement("div");ab.textContent = "我插入到了中心div起始标签的后面";ab.style.backgroundColor = "lightgreen";demo.insertAdjacentElement("afterBegin", ab);// 结束标签前let be = document.createElement("div");be.style.backgroundColor = "lightskyblue";be.textContent = "我插入到了中心div结束标签的前面";demo.insertAdjacentElement("beforeEnd", be);// 结束标签后let ae = document.createElement("div");ae.style.backgroundColor = "violet";ae.textContent = "我插入到了中心div结束标签的后面";demo.insertAdjacentElement("afterEnd", ae);</script></body></html>
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>自定义属性</title></head><body><!-- id、class等常用来进行css操作的这几个属性叫内置属性/预定义属性,email、index:自定义属性/数据属性自己定义添加的,叫自定义属性 --><div id="test" class="test" email="test@test.com" index="test"><h2>hello world</h2></div><!-- 将自定义属性前面加一个data-,js中使用dataset获取该属性 --><div id="test2" class="test2" data-email="test@test2.com" data-index="test2"><h2>hello world</h2></div><script>const div = document.querySelector("#test");console.log(div);// getAttribute获取方式console.log(div.getAttribute("email"));const div2 = document.querySelector("#test2");console.log(div2);//dataset获取方式//dataset用于获取用户的自定义属性,自定义属性必须使用data-为前缀,访问时不写前缀console.log(div2.dataset.email);</script></body></html>
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>classList 的基本使用</title><style>.red {color: red;}.lightgreen {color: lightgreen;}.hotpink {background-color: hotpink;}#test > h2 {border: 6px solid black;}</style></head><body><div id="test" class="test"><h2>hello world</h2></div><script>let h2 = document.querySelector("#test>h2");// element.classList.add("要添加的类名")添加// element.classList.remove("要移除的类名")移除// element.classList.replace("被替换的类名","替换为的类名")替换h2.classList.add("red");h2.classList.add("hotpink");h2.classList.remove("hotpink");h2.classList.replace("red", "lightgreen");</script></body></html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号