一、对象字面量
- es6的对象成员可以写做一个单词 这个单词是变量名:把变量名作为对象的属性名 值取出来作为属性值(易于读取,提高开发效果)
属性的简写:
var a = 100
var obj = {
age: 20,
a
} //把标识符a作为对象的属性名 把a的值取出来作为它的属性值
方法的简写:
var obj = {
say: function() {},
tool() {} //简写
}
var obj1={
name:"haha", //常用写法
"age":21, //标准写法
["hello"+10]:90, //es6的写法
[false]:90, //es6的写法
}
注:ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内
属性的简洁表示法和属性名表达式不能同时使用,否则会报错
二、对象的扩展运算符 ...
- 拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象
合并两个对象:
var obj = {
age: 21,
name: "1",
arr: [10, 20, 30]
}
var obj2 = {...obj}
console.log(obj, obj2)
var obj={name:"lili"}
var obj2={age:21}
var obj3={...obj,...obj2,score:100}
console.log(obj3)
三、对象的新静态方法
- Object.is(value1,value2):用来比较两个值是否严格相等 类似于===
a=Object.is(+0,-0)
console.log(a) //false +-0不相等
b=Object.is(NaN,NaN)
console.log(b) //true NaN相等
//与===的区别
//一是+0不等于-0
Object.is(+0,-0); //false
+0 === -0 //true
//二是NaN等于本身
Object.is(NaN,NaN); //true
NaN === NaN //false