javascript之初识变量的解构赋值

什么是变量的解构(Destructuring)赋值?

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构

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

  • 数组解构赋值
 let [m,n]=[9,4];
 console.log(m,n); // m 9; n 4  
  • 对象解构赋值(对象的结构赋值,与顺序无关因为变量必须与属性同名,才能取到正确的值)
let {p,q}={q:"hello",p:"hi"};
console.log(p,q); //hi    hello

注:
1.如果解构不成功,变量的值就等于undefined

let {p} = {q: 'a'};
p // undefined

2.解构也可以用于嵌套结构的对象

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

3.如果要将一个已经声明的变量用于解构赋值,要在 {} 外加上 () 否则JavaScript引擎会将 {p} 理解成一个代码块

let p;
({p} = {p: 8});

但是在有些情况下是不能使用圆括号的:

1.变量声明语句中,不能带有圆括号
2.函数参数中,模式不能带有圆括号
3.赋值语句中,不能将整个模式,或嵌套模式中的一层,放在圆括号之中

所以可以使用 () 的情况只有一种 —— 赋值语句的非模式部分,可以使用圆括号

用途

<1> 交换两个变量的值

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

<2>从函数返回多个值
一般要返回多个值的话,我们只能用数组存值,然后输出,有了解构赋值就可以提取出多个值

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

相关阅读更多精彩内容

  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    呼呼哥阅读 471评论 0 3
  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 950评论 0 0
  • 本文通过学习阮一峰的博客,外加自己的理解,整理了一下我对js变量的解构赋值的理解。 数组的解构赋值 对象的解构赋值...
    宋乐怡阅读 580评论 0 2
  • 1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Des...
    angelwgh阅读 548评论 0 0
  • 小嘴儿就是有小嘴儿的风度、小嘴儿的style!你看人简简单单的捡几件衣裤,再简简单单的排列组合一下,看见没,一菲律...
    给你们_乐乐与开心阅读 348评论 0 1

友情链接更多精彩内容