前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ECMAScript6 解构赋值

ECMAScript6 解构赋值

作者头像
Nian糕
修改2024-03-16 16:54:59
4170
修改2024-03-16 16:54:59
举报
文章被收录于专栏:JavaScript高阶应用

在 ES6 中,关于解构的含义为:允许按照一定模式,从数组和对象中提取值,对变量进行赋值,而数组、对象和字符串,都能通过这种方式进行赋值

数组的解构赋值

以往我们想要把数组的值分别赋给变量,都是通过下面这种方式

代码语言:javascript
复制
var arr = [1,2,3],
    a = arr[0],
    b = arr[1],
    c = arr[2];
console.log(a);
console.log(b);
console.log(c);

而通过解构赋值,我们只需要写很少的代码即可完成赋值

代码语言:javascript
复制
var [a,b,c] = [1,2,3]; 
    console.log(a);
    console.log(b);
    console.log(c);
运行结果
运行结果

接下来通过几段简单的代码,来加深大家对数组的解构赋值的理解

不完全解构

数组的解构赋值_1
数组的解构赋值_1

嵌套

数组的解构赋值_2
数组的解构赋值_2

设置默认值

数组的解构赋值_3
数组的解构赋值_3

默认值可以被覆盖,但需要注意的是,当新的值为undefined的时候,是不会覆盖默认值的

数组的解构赋值_4
数组的解构赋值_4

对象的解构赋值

对象的解构赋值跟数组的解构赋值类似,还是直接来看代码吧

对象的解构赋值_1
对象的解构赋值_1

上面的代码输出结果和下面的代码相同,但对象里的属性顺序并不是一样的,所以我们就知道,对象的解构赋值不会受到属性的排列次序影响(数组则会受影响),它是跟属性名关联起来的,变量名要和属性名一致,才能成功赋值

嵌套

对象的解构赋值_2
对象的解构赋值_2

设置默认值

对象的解构赋值_3
对象的解构赋值_3

除了数组跟对象可以使用解构赋值之外,字符串也同样可以使用解构赋值

字符串的解构赋值
字符串的解构赋值

解构赋值的常见用途

交换变量的值,传统的方式如下:

代码语言:javascript
复制
var x = 1,
    y = 2,
    z = x;
x = y; 
y = z;
console.log(x);
console.log(y);
解构赋值_1
解构赋值_1

函数返回的多个值

解构赋值_2
解构赋值_2

定义函数参数,通过解构赋值的方式,我们能很轻松的提取 JSON 对象中想要的参数

解构赋值_3
解构赋值_3

函数参数的默认值,传统的方式如下:

代码语言:javascript
复制
function me(a){
    var name;
    if(a === undefined){
        name = "Nian糕"; 
    }else{
        name = a;
    }
    console.log(name);
}
解构赋值_4
解构赋值_4
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组的解构赋值
  • 对象的解构赋值
  • 解构赋值的常见用途
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档