博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript中变量的解构赋值
阅读量:5326 次
发布时间:2019-06-14

本文共 1727 字,大约阅读时间需要 5 分钟。

ECMAScript中变量的解构赋值

 

   ES6 允许从数组和对象中提取值,对变量进行赋值。

 

 解构赋值的基本用法:

    1、数组的解构赋值

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

      console.log(a);//1

  console.log(b);//2

  console.log(c);//3

  

    2、对象的解构赋值

      let { foo:foo2, bar:bar2 } = {

foo: "aaa",bar: "bbb" };
  console.log(foo2);// "aaa"
  console.log(bar2);// "bbb"

 

    3、字符串的解构赋值

     字符串也可以解构赋值。字符串可以被转换成了一个类似数组的对象。

    const [a, b, c, d, e]= 'hello';

     console.log(a);//h

   console.log(b);//e

   console.log(c);//l

     console.log(d);//l

    console.log(a);//hconsole.log(e);//o

 

     数组的对象都有一个length属性,因此还可以对这个属性解构赋值

  let{length : len}= 'hello'

      console.log(len)//5

    

     4.函数的解构赋值

    function add([x, y]){

    return x + y;

  }

  console.log(add([1,6])); // 7

  

   解构赋值的用途:

    1、交换变量的值

  let x=1;

      ley y=2;

      [x,y]=[y,x];

      console.log(x);//2

      console.log(y);//1

 

  2、从函数返回多个值

      function func1(){

        return [1,2,3]'

  }

      let [a,b,c]=func1();

      console.log(a);//1

      console.log(b);//2

      console.log(c);//3

 

   

 function func2() {
return{ foo:1, bar:2 } } let {foo,bar}=func2(); console.log(foo);//1 console.log(bar);//23.函数参数的定义
// 参数是一组有次序的值function f([x, y, z]) { ... } f([1, 2, 3]); // 参数是一组无次序的值 function f({x, y, z}) { ... } f({z: 3, y: 2, x: 1}); 4.提前json数据 解构赋值对提取JSON对象中的数据,尤其有用。
let jsonData = {  id: 42, status: "OK", data: [867, 5309] }; let { id, status, data: number } = jsonData; console.log(id, status, number); // 42, "OK", [867, 5309] 5.遍历Map结构 Map结构原生支持Iterator接口,配合变量的解构赋值,获取键名和键值就非常方便。
var map = new Map(); map.set('first', 'hello'); map.set('second', 'world'); for (let [key, value] of map) { console.log(key + " is " + value); } // first is hello // second is world
 
如果只想获取键名,或者只想获取键值,可以写成下面这样。 // 获取键名 for (let [key] of map) { // ... } // 获取键值 for (let [,value] of map) { // ... }

 

转载于:https://www.cnblogs.com/qqpw/p/6623562.html

你可能感兴趣的文章
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
Linux设置环境变量的方法
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>