博客列表 >解构赋值 、函数参数中使用解构的方式、 dom元素的增删改查、 dataset,classList对象的使用方式与场景

解构赋值 、函数参数中使用解构的方式、 dom元素的增删改查、 dataset,classList对象的使用方式与场景

Leo的博客
Leo的博客原创
2021年10月14日 18:14:23669浏览

解构赋值

  1. const user = ["js", "617896945@qq.com"];

将用户,邮箱,保存到独立 变量中

  1. let userName = user[0];
  2. let userEmail = user[1];
  3. console.log(userName, userEmail);

es6,解构完成以上功能
将多值/引用,解析到单值变量中
针对 数组,对象

数组结构

模板 = 具体的值

  1. let [name, email] = ["js", "6945@qq.com"];
  2. console.log(userName, userEmail);

更新

  1. [name, email] = ["css", "6178@qq.com"];
  2. console.log(name, email);

参数不足
会提示undefined,所以给age加入值

  1. [name, email, age] = ["KJ", "6178945@qq.com"];
  2. console.log(name, email, age);

输出:


参数过多
加入e,e就是数组

  1. let [a, b, c, d, ...e] = [1, 2, 3, 4, 5, 6, 7];
  2. console.log(a, b, c, d, e);

输出:


交换两个数

  1. let x = 10;
  2. let y = 20;
  3. console.log("x = %d , y = %d", x, y);
  4. let t = 0;
  5. t = x;
  6. x = y;
  7. y = t;

简化和上面效果一样

  1. [x, y] = [y, x];
  2. console.log("x = %d , y = %d", x, y);

>对象结构

  1. let { id, course, score } = { id: 1, course: "js", score: 88 };

属性与对象同名

  1. console.log(id, course, score);

更新
等号左边(左值)不允许出现大括号,使用括号包住将它转为表达式

  1. ({ id, course, score } = { id: 2, course: "php", score: 99 });
  2. console.log(id, course, score);

某一个变量在作用域中存在
使用别名,防止命名冲突

  1. let { name: myName, email: myEmail } = {
  2. name: "em",
  3. email: "234@qq.com",
  4. };
  5. console.log(myName, myEmail);

输出:


参数不足,也能用归并参数a:1,b:2,c:3

  1. let { ...r } = { a: 1, b: 2, c: 3 };
  2. console.log(r);

输出:

函数参数中使用解构的方式

  1. function getUser(user) {
  2. console.log(user.id, user.name, user.email);
  3. }
  4. getUser({ id: 987, name: "move", email: "moveTo@qq.com" });

简化
结构简化传参与使用

  1. function getUser({ id, name, email }) {
  2. console.log(id, name, email);
  3. }
  4. getUser({ id: 789, name: "momo", email: "moveTo@qq.com" });

输出:

dom元素的增删改查

创建元素
内存中,页面不可见

  1. let div = document.createElement("div");
  2. let p = document.createElement("p");
  3. p.textContent = "hello world";

添加到页面中

  1. p.append("大家好");
  2. div.append(p);
  3. document.body.append(div);
  4. const li = document.createElement("li");
  5. li.textContent = "第一个";
  6. div.append(li);

insertAdjacentElement(‘插入位置’, 元素)
插入位置有四个

afterBegin: 开始标签之后,第一个子元素

beforeBegin: 开始标签之前,是它的前一
个兄弟元素

afterEnd: 结束标签之后,它的下一个兄弟元素

beforeEnd:结束标签之前,它的最后一个子元素


插入到开始标签之前

  1. const item = document.createElement("li");
  2. item.textContent = "2021年10月14号下午16点46分";
  3. div.insertAdjacentElement("beforebegin", item);

插入到标签最后

  1. const h3 = document.createElement("h3");
  2. h3.textContent = "2021年10月14号下午16点51分了";
  3. div.insertAdjacentElement("beforeEnd", h3);

输出:


dataset,classList对象的使用方式与场景

dataset对象

id,class: 内置/预定义
email, index: 自定义/ 数据属性

  1. <div id="user" class="active" data-email="admin@php.cn" data-index="5">
  2. <h2>Hello world</h2>
  3. </div>

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

  1. const div = document.querySelector("#user");
  2. console.log(div.dataset.email);
  3. console.log(div.dataset.index);

输出:

classList对象

  1. <style>
  2. .red {
  3. color: red;
  4. }
  5. .bgc {
  6. background-color: yellow;
  7. }
  8. .blue {
  9. color: blue;
  10. }
  11. h2 {
  12. border: 5px solid #000;
  13. }
  14. </style>

lass后面加name 不然会重复,想加入背景色空格 输入bgc
document.querySelector(“h2”).className = “red bgc”;

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