es6 的解构赋值

1.数组的结构赋值

以前,为变量赋值,只能直接指定值。

javascript 复制代码
let a = 1;
let b = 2;
let c = 3;

ES6 允许写成下面这样。

javascript 复制代码
let [a, b, c] = [1, 2, 3];
console.log(a);//1
console.log(b);//2
console.log(c);//3

上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值

本质上,这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值。

2.对象的解构赋值

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值

javascript 复制代码
  let { bar1, foo } = { foo: 'aaa', bar1: 'bbb' };
        console.log(
            foo, // "aaa"
            bar1 // "bbb"
        );
  let { baz } = { foo: 'aaa', bar: 'bbb' };
  console.log(baz);// undefined

如果解构失败,变量的值等于undefined

3.字符串的解构赋值

字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

javascript 复制代码
 const [a, b, c, d, e] = 'hello';
 console.log(a, b, c, d, e); // "h e l l o"
相关推荐
张元清几秒前
不用 WebSocket 库,在 React 中构建实时功能
前端·javascript·面试
李白你好1 分钟前
浏览器插件 | 信息收集、统一指纹识别 、DOM XSS 检测 、漏洞报告生成与管理
前端·xss
渔民小镇12 分钟前
不用前端也能测试 —— 模拟客户端请求模块详解
java·服务器·前端·分布式·游戏
SuperEugene17 分钟前
Python + venv + VSCode:前端工程师 AI 转型入门 | 基础篇
前端·人工智能·vscode·python
xuboyok233 分钟前
PHP vs Java:核心差异与选型指南
开发语言·前端·php
D_C_tyu33 分钟前
Vue3 + Vite 项目实现页面离开时取消所有未完成请求
前端·vue.js
榴莲omega40 分钟前
第10天:手写 bind 与 柯里化 | 从疑惑到通透
开发语言·javascript·ecmascript·bind·柯里化
leafyyuki40 分钟前
Pyenv Rehash 失败:锁文件与‘无法覆盖已有文件’问题
前端
Binarydog_Lee42 分钟前
Tauri2 开发入门:应用是如何启动的
前端·rust·tauri
前端付豪1 小时前
实现聊天参数面板
前端·人工智能·后端