解构赋值

  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>

更多相关文章

  1. 【前端】Canvas 内部元素如何实现 mouseover/mousemove 事件?
  2. File、Blob、dataURL 和 canvas 的应用与转换
  3. img标签到底是行内元素还是块级元素
  4. es6结构赋值+DOM节点的增删改查+自定义属性: dataset对象的用法+
  5. js 流程控制 和 DOM操作
  6. DOM 元素的基本操作
  7. CSS定位、flex及gird布局
  8. 表单元素及表单事件
  9. iframe获取子级和父级元素

随机推荐

  1. aspx是什么文件?
  2. C语言中数组所占字节怎么算
  3. gin是什么意思?
  4. c语言中undeclared identifier是什么意思
  5. C++如何给二维数组初始化
  6. 什么是Go语言?Go语言的优缺点介绍
  7. 一个c程序的执行是从哪里开始到哪里结束
  8. devc++怎么改成中文
  9. 在c语言中引用数组元素时,其数组下标的数
  10. c++中=和==的区别有哪些?