概述
测试环境:max oS,node v6.3.1 , 不使用严格模式,2016/7/22
1、属性的简洁表示法(支持)
function get(){
var x=1,
y=2;
return {x,y};
}
console.log(get());
var b = 'age';
var a = {
[b]:20,
['name']:'Tom'
}
console.log(a);
{ age: 20, name: 'Tom' }
3、Object.is() 同值相等 (支持)
var a = Object.is(+0,-0);
var b = Object.is(NaN, NaN);
var a2 = +0 === -0;
var b2 = NaN ===NaN;
console.log(a,b,a2,b2);
//false true true false
4、Object.assign() 对象合并 (支持)
(1)克隆对象
var a = {x:1, y:2};
var b = Object.assign({y:10}, a);
b.x = 100;
console.log(a,b); //克隆后会覆盖原值
{ x: 1, y: 2 } { y: 2, x: 100 }
(2)指定默认值
const defaults = {age:20,name:'noname'}
var a = Object.assign({},defaults,{age:50});
console.log(a);
//name 默认值为 ‘noname’
{ age: 50, name: 'noname' }
5、对象扩展运算符 ... (ES7的提案)
(1)rest解构赋值 (不支持)
var {x,y, ...z} = {x;1, y:2, a:3, b:4}
console.log(x,y,z);
SyntaxError: Unexpected token ...
(2)扩展运算符 (不支持)var a= {x:1, y:2, a:3, b:4}
var n = { ...a };
console.log(n);
SyntaxError: Unexpected token ...
6、ES6的5种遍历对象属性的方法,注意他们的区别
1、for in
2、Object.keys(obj)
3、Object.getOwnPropertyNames(obj)
4、Object.getOwnPropertySymbols(obj)
5、Reflect.ownKeys(obj)
7、es6附录中建议不使用 _proto_ 属性,使用下面代替(支持)
Object.setPropertyOf(obj, prototype);
Object.getPropertyOf(obj);
8、 es5中 Object.getOwnPropertyDescriptor() 返回某个属性的描述对像(支持)
es7中 提案 Object.getOwnPropertyDescriptors(obj) 返回某个对象的所有属性的描述对象(不支持)
var a= {x:1, y:2, a:3, b:4}
// var b = Object.getOwnPropertyDescriptors(a);
// console.log(b);
// TypeError: Object.getOwnPropertyDescriptors is not a function
var c = Object.getOwnPropertyDescriptor(a,'x');
console.log(c);
//{ value: 1, writable: true, enumerable: true, configurable: true }
(1)for in
(2)Object.keys()
(3)JSON.stringfy()
(4)Object.assign()
最后
以上就是优美心锁为你收集整理的ES6 对象的扩展 简单测试的全部内容,希望文章能够帮你解决ES6 对象的扩展 简单测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复