es6解构赋值

基本用法:es6允许按照一定模式,从对象和数组中提取值,对变量进行赋值,被称为解构赋值

let [a, b, c] = [1, 2, 3];
// a=1;b=2;c=3

只要等号两边的模式相同,左边的变量就会被赋予对应的值

Set 结构,也可以使用数组的解构赋值。

let [x, y, z] = new Set(['a', 'b', 'c']);
x // "a"

注意点:
(1)如果要将一个已经声明的变量用于解构赋值,必须非常小心。

// 错误的写法
let x;
{x} = {x: 1};
// SyntaxError: syntax error

JavaScript 引擎会将{x}理解成一个代码块,从而发生语法错误
(2)解构赋值允许等号左边的模式之中,不放置任何变量名。因此,可以写出非常古怪的赋值表达式。

({} = [true, false]);
({} = 'abc');
({} = []);

上面的表达式虽然毫无意义,但是语法是合法的,可以执行。
(3)由于数组本质是特殊的对象,因此可以对数组进行对象属性的解构

let arr = [1, 2, 3];
let {0 : first, [arr.length - 1] : last} = arr;
first // 1
last // 3
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性...
    sunnyghx阅读 841评论 0 0
  • 引入 在ES5中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码 这段代码从op...
    nengzhuan_zhang阅读 660评论 0 0
  • 解构 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值 数组解构赋值 本质上这种写法相当于模式匹配如...
    heheheyuanqing阅读 469评论 0 0
  • 成长是一条不可逆的路,愿你努力尽力,过有意义的人生,无岁月可回头。 01、抓住**机会成本** 昨天带孩子去买...
    安心悦舍阅读 514评论 0 4
  • 自动化测试就是编写测试代码,代替人工去完成业务与模块的测试。目前人工在测试中还是占比很重的,毕竟代码无法验证非逻辑...
    西风那个吹呀吹阅读 1,726评论 0 7

友情链接更多精彩内容