一.数组的解构:

  以前的方式:

  var arr = [1,2,3];

  console.log(arr[0]); //1

  console.log(arr[1]); //2

  现在的方式:

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

  console.log(a); //1

  console.log(b); //2

  数组解构还有以下几种:

  (1).

  var [a,[b,c]] = [1,[2,3]];
  //1
  console.log(a);
  //2
  console.log(b);
  //3
  console.log(c);

  (2).

  var [a,b,c] = new Set([4,5,6]);
  //4
  console.log(a);
  //5
  console.log(b);
  //6
  console.log(c);

  (3).

  var [a=1,b=a] = [];
  //1
  console.log(a);
  //1
  console.log(b);

  (4).

  var [a=1,b=a] = [2,3];
  //2
  console.log(a);
  //3
  console.log(b);

  

二.对象的解构赋值:  

  以前的方式
  var json = {
    a:1,
    b:2
  };  

  现在的方式:

  //name是a的别名
  var {a:name,b} = {a:3,b:4};
  var {a,b} = {a:3,b:4};
  var {a,b} = {a:1,b:[2,3]};

  例: 

  var json = {
    a:[
      'hi',
      {b:'hello'}
    ]
  };

  var {a:[name,{b}]} = json;
  //hi
  console.log(name);
  //hello
  console.log(b);

三.函数的解构赋值:

  以前的方式:
  function fn(a,b){
    console.log([a,b]);
  }
  //[1,2]
  fn(1,2); 

  现在的方式:

  (1).

  function fn([a,b]){
    console.log([a,b]);
  }
  fn([3,4]);//[3, 4]

  (2).

  function fn({a=1,b=2} = {}){
    console.log([a,b]);
  }

  fn(); //[1, 2]
  fn({a:1}); //[1, 2]
  fn({a:10,b:11}); //[10, 11]

  (3).

  function fn({a,b} = {a:1,b:2}){
    console.log([a,b]);
  }
  fn(); //[1, 2]
  fn({a:1}); //[1, undefined]
  fn({a:10,b:11}); //[10, 11]

用vue.js学习es6(三):数组、对象和函数的解构的更多相关文章

  1. 用vue.js学习es6(一):基本工具及配置

    一.工具: sublime,node.js,npm 1.安装sublime 的es6插件: (1).在sublime中按Ctrl+`调出console (2).粘贴以下代码到底部命令行并回车(subl ...

  2. 用vue.js学习es6(六):Iterator和for...of循环

    一.Iterator (遍历器)的概念: 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只 要部署Iterator接口,就可以完成遍历操 ...

  3. 用vue.js学习es6(五):set和map的使用

    一:Set用法: ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. (1).打印:console.log var data = new Set([1,2,3]); ...

  4. 用vue.js学习es6(二):let和const使用

    一.运行及关闭运行: 在上一节中我们用shift+右击在C:\vue\es6文件夹中打开命令行使用:npm run dev,打开了我们的vue界面. 如果要关闭则在命令行中按住ctrl+C则可以关闭. ...

  5. 用vue.js学习es6(四):Symbol类型

    一.Symbol类型: 1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null. 布尔值(Boolea ...

  6. js学习(三)对象与事件

    JavaScript 对象 1.JavaScript 对象:拥有属性和方法的数据. 2.在 JavaScript中,几乎所有的事物都是对象. 3.定义一个person对象 var person = { ...

  7. js学习(一)-对象和函数概念

    //-----------------------js代码-------------------- function class1(){       //类成员的定义及构造函数 this.name = ...

  8. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  9. vue.js学习记录

    vue.js学习记录 文章已同步我的github笔记https://github.com/ymblog/blog,欢迎大家加star~~ vue实例 生命周期 beforeCreate:不能访问thi ...

随机推荐

  1. 04实现累加和计算功能并且实现textbox不允许输入数字以外的字符但不包括退格键同时不允许第一个数值为0

    private void button1_Click(object sender, EventArgs e) { double number1, number2; if (double.TryPars ...

  2. 【C#】无损转换Image为Icon

    如题,市面上常见的方法是: var handle = bmp.GetHicon(); //得到图标句柄 return Icon.FromHandle(handle); //通过句柄得到图标 此法的问题 ...

  3. 配置mac百度云同步盘

    1. 选择同步盘在电脑中的位置,该文件夹中的内容与云端保持一致.默认位置/Users/LemonVerbena/百度云同步盘.电脑同步盘的作用与百度云网盘的主页一样,下面可以包括多个同步文件夹. 2. ...

  4. Python 基础之三条件判断与循环

    If……else 基本结构: If condition: do something else: do something 或者 If condition: do something elif cond ...

  5. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  6. wamp集成环境开启rewrite伪静态支持

    wamp集成环境在安装完后,默认是没有开启伪静态的,所以有时把项目部署进去时如果源码里包含.htaccess文件的话,可能会出现500错误,这一般是因为不支持伪静态造成的,解决这个问题的办法就是开启伪 ...

  7. call_user_func()的参数不能为引用传递 自定义替代方法

    php手册 中关于 请注意,传入call_user_func()的参数不能为引用传递. 关于这个情况的解释,可自己搜索.我们可以自己定义一个函数解决这样的问题,实例如下: <?php ini_s ...

  8. Android数据库相关整理

    今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...

  9. mysql操作入门基础之对数据库和表的增删改查

    一.数据库管理-- 1.登陆数据库 mysql -u root -p; -- 2.查看数据库服务器所有数据库 SHOW DATABASES; -- 3.创建数据库 CREATE DATABASE My ...

  10. 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下:

    Asp.net MVC中的ViewData与ViewBag ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP. ...