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, ...
随机推荐
- hdu 2049 不容易系列之考新郎 && 对错排的详解
题目 错排: 当n个编号元素放在n个编号位置,错排的方法数记着D(n) ⒈把第n个元素放在一个位置,比如位置k,一共有(n-1)种方法: ⒉放编号为k的元素,这时有两种情况: 1°把它放到位置n,那 ...
- springMVC 开涛 数据绑定
纸上得来终觉浅,绝知此事要躬行. 一.@requestParam //使用方法URL:?username="sfp" test(@RequestParam(value=" ...
- 【转】Swig使用指南
如何使用 API swig.init({ allowErrors: false, autoescape: true, cache: true, encoding: 'utf8', filters: { ...
- C# InDepth 第一章
深入理解C#第一部分,第一章介绍了C#开发得进化史. 1 从数据类型定义引入c#1到4中得改变 c#2:强类型集合(泛型) c#3:自动实现得属性和简化得初始化 c#4:命名实参 2 排序和过滤 排序 ...
- React跨域
React跨域 一.使用http-proxy-middleware中间件解决跨域问题 1.安装包: npm install http-proxy-middleware --save-dev 2.配置: ...
- 838. Push Dominoes
There are N dominoes in a line, and we place each domino vertically upright. In the beginning, we si ...
- Django 定时任务实现(django-crontab+command)
一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...
- 用navicat远程连接mysql:Can't connect to MySQL server (10060)
出现这种现象的原因有两个,一个是当前用户被mysql服务器拒绝,另外一个原因是3306端口被被防火墙禁掉,无法连接到该端口.解决方法如下: 1.设置远程用户访问权限: // 任何远程主机都可以访问数据 ...
- git install
wget -O git-master.zip https://codeload.github.com/git/git/zip/master unzip git-master.zip cd git-ma ...
- Elasticsearch-搜索推荐
对于es中搜索推荐的功能的实现: 1.使用match_phrase_prefix来实现search-time搜索推荐,原理根match_phrase类似,唯一的区别是把最后一个term作为前缀去搜索, ...