ES6-Object
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>[es6]-04-对象</title>
<script src="./js/browser.js"></script>
<script type="text/babel">
/*
* 对象的结构赋值
* 对象属性没有次序,所以变量名与属性同名才能取到正确值。
*/
var {bar,foo} = {"bar":1,"fooo":2};
console.log({bar,foo}); //同样,找不到的就是undefined //如果变量名与属性名不一致,必须写成下面的形式:
var {foo:baz} = {"foo":"aaa"};
console.log(baz); //aaa,类似数组,键就相当于数组的索引。 let obj = {"first":"hello","last":"world"};
let {first:f,last:l} = obj;
console.info(f,l)
// 下面的代码中,let命令下面的圆括号是必须的,否则会报错。解析器首先把他
//当做代码块,而不是赋值语句:
let fooo;
({fooo} = {"fooo":1});
console.info(fooo); //1 let声明,下面赋值 //对象的解构也可以设置默认值,支持嵌套:
var {x=3} = {};
console.info(x); //3
var {x,y=5} = {x:1};
console.info(x,y) //1 5
var {x:y=3} = {x:5};
console.info(y); //5 //默认值生效的条件是 对象的属性值严格等于undefined。
var {x=3} = {x:undefined};
console.info(x); //3
//对于已经声明的变量解构赋值,要带上圆括号:
var x;
({x} = {x:1})
console.info(x);
//对象的解构赋值,可以很方便的将现有对象上的方法,赋值到某个变量:
let {log,sin,cos} = Math;
console.log(log,sin,cos); //获取Math对象上的方法并赋值。
//由于数组本质上是特殊的对象,所以可以对数组进行对象属性的解构:
var arr = [1,2,3];
var {0:first,[arr.length-1]:last} = arr;
console.info(first,last); //1 3
</script>
</head>
<body>
</body>
</html>
依赖文件地址:https://github.com/chanceLe/ES6-Basic-Syntax/tree/master/js
ES6-Object的更多相关文章
- es6 Object.assign
ES6 Object.assign 一.基本用法 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target).它至少需要两个对象作为参数,第一个参数是目 ...
- es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式
es6 Object.assign 目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...
- js es6 Object.freeze
将对象冻结,使用Object.freeze方法 const foo = Object.freeze({}); // 常规模式时,下面一行不起作用: // 严格模式时,该行会报错 foo.prop = ...
- es6 Object对象扩展新方法
ES6给Object拓展了许多新的方法,如: keys(obj):获取对象的所有key形成的数组 var obj = { foo: 'bar', baz: 42 }; Object.keys ...
- [ES6] Object.assign (with defaults value object)
function spinner(target, options = {}){ let defaults = { message: "Please wait", spinningS ...
- es6 Object的几个新方法
扩展对象 Object.preventExtensions Object.isExtensible 密封对象 Object.seal Object.isSealed 冻结对象 Object.freez ...
- es6 Object 数据属性和访问器属性
原文 :http://www.jb51.net/article/91698.htm 总结 ES5提供了Object.getOwnPropertyDescripter()方法来获取给定属性的描述符. p ...
- es6 Object.assign(target, ...sources)
Object.assign() 方法用于将所有可枚举属性(对象属性)的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ...sources) ...
- ES6 Object.setPrototypeOf ()方法和defineProperty()方法的使用
将一个指定的对象的原型设置为另一个对象或者null(既对象的[[Prototype]]内部属性). 示例: <script type="text/javascript"> ...
- ES6 object.defineProperty
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象. Object.defineProperty(obj, prop, ...
随机推荐
- (博弈)Simple Game --codeforces--570B
链接: http://codeforces.com/problemset/problem/570/B http://acm.hust.edu.cn/vjudge/contest/view.action ...
- hdu 2189 悼念512汶川大地震遇难同胞——来生一起走
题目 这道题用了,埃式筛选法和背包,我自己没有做出来,看了别人的代码,我也做不出来,特别是c[j]+=c[j-b[i]];弄了好久都没有弄懂. 这道题的解题思路:主要是先把150以内的所有素数找出来, ...
- numpy.sort()学习记录
python的功能真的是只有我想不到,没有它做不到 在学系np.sort中学到了一些 print(array2) [14 13 12 11] [10 9 8 7] [ 6 5 4 3] print(n ...
- C++互斥器:Semaphores
类似于Mutex,但信号量Semaphores不仅仅是锁和解锁那么简单,更高级的是,可以被锁住最多n次. 其中这个n是信号量被产生时指定的n.该值常常被用来代表“可以锁定住一份资源”的线程个数. 可以 ...
- c# 协变和逆变的理解
1. 是什么 1.1 协变 协变指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型.如 string 到 object 的转换.多见于类型参数用作方法的返回值. 1.2 逆变 逆变指能够 ...
- GeoServer中配置GeoWebCache切片缓存目录
war版的GeoServer中,默认情况下,GeoWebCache切片会缓存在C盘某目录下.该目录比较隐蔽,并且随着切片缓存的增多,所占空间也会越来越大,所以建议手动配置其切换缓存目录. 配置方式:在 ...
- ASP.NET关于Session_End触发与否的问题
项目背景: 要求开发一个篆文识别网站,由于之前做好了WinForm的,把系统直接移植到WebForm上就好.工作比较简单,但确实遇到不少问题. 核心问题是: 篆文识别涉及到用户对原始图片的预处理(例如 ...
- Dalsa线扫相机配置-一台工控机同时连接多个GigE相机
如图,我强悍的工控机,有六个网口. 实际用的时候连了多台相机,为了偷懒我就把六个网口的地址分别设为192.168.0.1~192.168.0.6,以为相机的IP只要设在192.168.0这个网段然后随 ...
- c#使用NPOI快速导出到Excel
接上篇博文<C#快速导出到excel>:由于此种方法不能导出成.xlsx格式,为解决此问题,本次分享使用NPOI. 参考:https://www.cnblogs.com/lazyneal/ ...
- Reddit CEO亲自诠释内容审核的无奈
本文由 网易云发布. 导语:继数据泄露危机之后,Facebook将会雇用数千名新员工来负责新的验证系统,这个系统将首先在美国广告客户中生效,并将在未来几个月内涵盖其他国家.与此同时,如何让自己的社区 ...