ES6里面对象的改变

1 省略V
当一个对象的k、v相同(k的名字和v的变量名相同),此时可以省略v。

比如下面有三个变量a、b、c,要作为一个对象的属性名a、b、c,同时值也是123。因为k、v一致,此时就可以省略v:
var a = 1;
var b = 2;
var c = 3;

var obj = {
	a ,
	b ,
	c
}

console.log(obj);
这种省略v的写法非常常见:
var result = (function(){
	var s = 0;
	for (var i = 0; i <= 100; i++) {
		s += i;
	};
	return s;
})();
var json = {result};
console.log(json);

//省略V的时候K不能有引号!

对象的方法可以简写

	var obj = {
		a : 1,
		**fn : function(){
			console.log(this.a);
		}**
	}
	obj.fn();
	现在简写为:
	var obj = {
		a : 1,
		**fn(){
			console.log(this.a);
		}**
	}
	obj.fn();

Object.keys()和Object.values()

Object.keys()返回对象的键名数组;
Object.values()返回对象的值数组;

4 Object.is()

ES5 比较两个值是否相等,只有两个运算符:相等运算符()和严格相等运算符(=)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。

console.log(Object.is(NaN , NaN)); //true
console.log(Object.is(+0 , -0)); //false

比较的时候比较的仍然是对象是否是同一个对象。
var arr1 = [1,2,3];
var arr2 = [1,2,3];

console.log(Object.is(arr1 , arr2)); //false
因为arr1和arr2在内存中是两个不同的数组。

5 Object.assign

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

var obj1 = {"a" :1 , "b" : 2 , "c" : 3};
var obj2 = {"b" :4 , "c" : 5 , "d" : 6};
var obj3 = {"c" :7 , "d" : 8 , "e" : 9};

Object.assign(obj1 , obj2 , obj2);

console.log(obj1);

注意Object.assign()可以有无限个参数,但是只会更改第一个参数对象。
在这里插入图片描述

6 对象中键加方括号 - 动态键

当对象的键名是一个变量的时候,在{}的里面,可以写[]包裹这个变量成为键名。

var sex ="男";
if(sex == "男"){
	var k = "feihuoliang";
}else{
	var k = "xiongwei";
}
var obj = {
	"name" : "小明",
	"sex" : sex,
	[k] : 130//动态键,表示它取自外部的属性
}
console.log(obj);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值