属性的简洁表示法
ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。
const age = 12; const name = "Amy"; const person = {age, name}; person //{age: 12, name: "Amy"} //等同于 const person = {age: age, name: name}
方法名简写
const person = {
sayHi(){
console.log("Hi");
}
}
person.sayHi();
//"Hi" //等同于
const person = {
sayHi:function(){
console.log("Hi");
}
}
person.sayHi();//"Hi"
属性名表达式
ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。
注意点:属性的简洁表示法和属性名表达式不能同时使用,否则会报错。
const obj = { ["he"+"llo"](){ return "Hi"; } } obj.hello(); //"Hi"
对象的拓展运算符
拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。 基本用法 let person = {name: "Amy", age: 15}; let someone = { ...person }; someone; //{name: "Amy", age: 15} 可用于合并两个对象 let age = {age: 15}; let name = {name: "Amy"}; let person = {...age, ...name}; person; //{age: 15, name: "Amy"}
对象的方法
Object.is(value1, value2),比较两个值是否严格相等,与===基本类似
Object.is("q","q"); // true
Object.is(1,1); // true
Object.is([1],[1]); // false
Object.is({q:1},{q:1}); // false
console.log(NaN === NaN); //true
console.log(Object.is(NaN,NaN)); //true
***** assign() *** 对象的合并 Object.assign(target,obj1,obj2....) //true 返回合并之后的新对象 let newObj = Object.assign({},{a:1},{b:2}); console.log(newObj) //{a: 1, b: 2}