用vue.js学习es6(三):数组、对象和函数的解构
一.数组的解构:
以前的方式:
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(三):数组、对象和函数的解构的更多相关文章
- 用vue.js学习es6(一):基本工具及配置
一.工具: sublime,node.js,npm 1.安装sublime 的es6插件: (1).在sublime中按Ctrl+`调出console (2).粘贴以下代码到底部命令行并回车(subl ...
- 用vue.js学习es6(六):Iterator和for...of循环
一.Iterator (遍历器)的概念: 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只 要部署Iterator接口,就可以完成遍历操 ...
- 用vue.js学习es6(五):set和map的使用
一:Set用法: ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. (1).打印:console.log var data = new Set([1,2,3]); ...
- 用vue.js学习es6(二):let和const使用
一.运行及关闭运行: 在上一节中我们用shift+右击在C:\vue\es6文件夹中打开命令行使用:npm run dev,打开了我们的vue界面. 如果要关闭则在命令行中按住ctrl+C则可以关闭. ...
- 用vue.js学习es6(四):Symbol类型
一.Symbol类型: 1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null. 布尔值(Boolea ...
- js学习(三)对象与事件
JavaScript 对象 1.JavaScript 对象:拥有属性和方法的数据. 2.在 JavaScript中,几乎所有的事物都是对象. 3.定义一个person对象 var person = { ...
- js学习(一)-对象和函数概念
//-----------------------js代码-------------------- function class1(){ //类成员的定义及构造函数 this.name = ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- vue.js学习记录
vue.js学习记录 文章已同步我的github笔记https://github.com/ymblog/blog,欢迎大家加star~~ vue实例 生命周期 beforeCreate:不能访问thi ...
随机推荐
- TeamCity : 配置 Build 过程
Build 过程往往是比较复杂的,因此 TeamCtiy 通过 build 步骤的方式让您可以实现不同的应用场景.您可以在每个 build 步骤中只做一件事情,然后把一系列的 build 步骤组织起来 ...
- C++ 最小化到托盘
#define WM_SHOWTASK (WM_USER + 1) void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID &a ...
- Android 5.0源码编译问题
如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...
- 模型浏览器【Model Browser】【EF基础系列6】
We have created our first Entity Data Model for School database in the previous section. The visual ...
- Java编程里的类和对象
像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...
- string.empty , "" , null 以及性能的比较
一:这种结论,个人觉得仍然存疑 http://www.cnblogs.com/wangshuai901/archive/2012/05/06/2485657.html 1.null null 关 ...
- 深刻理解:C#中的委托、事件
C#中的事件还真是有点绕啊,以前用JavaScript的我,理解起来还真是废了好大劲!刚开始还真有点想不明白为什么这么绕,想想和JS的区别,最后终于恍然大悟! C#中事件绕的根本原因: C#的方法,它 ...
- [译]为什么我要离开gulp和grunt转投npm脚本的怀抱
原文链接:https://medium.freecodecamp.com/why-i-left-gulp-and-grunt-for-npm-scripts-3d6853dd22b8#.n7m1855 ...
- android textview 自动换行 整齐排版
一.问题在哪里? textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子: 上述特殊情况包括: 1)全角/半角符号混排(一般是数字.字母.汉字混排) 2)全角/半角 ...
- 【代码笔记】iOS-中国地图
一,效果图. 二,工程图. 三,代码. AppDelegate.m #import "AppDelegate.h" //加入头文件 #import "DrawMapVie ...