专业开发网站的公司,网站建设服务商 需要什么主机,网站建设毕业设计题目,中国建设官方网站一、属性的简写
当对象字面量的属性名与变量名相同时#xff0c;可以省略属性名#xff0c;直接使用变量名作为属性名。
const x 10;
const y 20;// ES6之前
const obj1 { x: x, y: y };// ES6属性简写
const obj2 { x, y };注意#xff1a;简写的对象方法不能用作构造…一、属性的简写
当对象字面量的属性名与变量名相同时可以省略属性名直接使用变量名作为属性名。
const x 10;
const y 20;// ES6之前
const obj1 { x: x, y: y };// ES6属性简写
const obj2 { x, y };注意简写的对象方法不能用作构造函数否则会报错 二、方法简写
在对象字面量中定义方法时可以省略冒号和 function 关键字。
// ES6之前
const obj1 {method: function() {// 方法内容}
};// ES6方法简写
const obj2 {method() {// 方法内容}
};三、计算属性名
在对象字面量中可以使用计算表达式来定义属性名。
const prefix foo;
const obj {[prefix Bar]: 42
};console.log(obj.fooBar); // 输出 42四、对象解构赋值
可以从对象中提取属性并赋值给变量。
const obj { x: 10, y: 20 };const { x, y } obj;console.log(x, y); // 输出 10 20五、Object.assign 方法
用于将一个或多个源对象的属性复制到目标对象。
const target { a: 1 };
const source { b: 2, c: 3 };const result Object.assign(target, source);console.log(result); // 输出 { a: 1, b: 2, c: 3 }六、Object.keys、Object.values 和 Object.entries
这些静态方法用于获取对象的键、值和键值对的数组。
const obj { a: 1, b: 2, c: 3 };console.log(Object.keys(obj)); // 输出 [a, b, c]
console.log(Object.values(obj)); // 输出 [1, 2, 3]
console.log(Object.entries(obj)); // 输出 [[a, 1], [b, 2], [c, 3]]ES6中属性的遍历
ES6 一共有 5 种方法可以遍历对象的属性。 for…in循环遍历对象自身的和继承的可枚举属性不含 Symbol 属性 Object.keys(obj)返回一个数组包括对象自身的不含继承的所有可枚举属性不含 Symbol 属性的键名 Object.getOwnPropertyNames(obj)回一个数组包含对象自身的所有属性不含 Symbol 属性但是包括不可枚举属性的键名 Object.getOwnPropertySymbols(obj)返回一个数组包含对象自身的所有 Symbol 属性的键名 Reflect.ownKeys(obj)返回一个数组包含对象自身的不含继承的所有键名不管键名是 Symbol 或字符串也不管是否可枚举
上述遍历都遵守同样的属性遍历的次序规则
首先遍历所有数值键按照数值升序排列其次遍历所有字符串键按照加入时间升序排列最后遍历所有 Symbol 键按照加入时间升序排
对象新增的方法
Object.assign(target, …sources)该方法用于将一个或多个源对象的属性复制到目标对象中并返回目标对象。如果有相同的属性名后续的源对象会覆盖前面的源对象的属性值。
const target { a: 1 };
const source { b: 2, c: 3 };const result Object.assign(target, source);
console.log(result);
// 输出{ a: 1, b: 2, c: 3 }Object.keys(obj)该方法返回一个由目标对象的可枚举属性的键组成的数组。
const obj { a: 1, b: 2, c: 3 };
const keys Object.keys(obj);console.log(keys);
// 输出[a, b, c]Object.values(obj)该方法返回一个由目标对象的可枚举属性的值组成的数组。
const obj { a: 1, b: 2, c: 3 };
const values Object.values(obj);console.log(values);
// 输出[1, 2, 3]Object.entries(obj)该方法返回一个由目标对象的可枚举属性的键值对组成的数组二维数组。
const obj { a: 1, b: 2, c: 3 };
const entries Object.entries(obj);console.log(entries);
// 输出[[a, 1], [b, 2], [c, 3]]Object.fromEntries(entries)该方法将一个由键值对组成的数组二维数组转换为一个对象。
const entries [[a, 1], [b, 2], [c, 3]];
const obj Object.fromEntries(entries);console.log(obj);
// 输出{ a: 1, b: 2, c: 3 }Object.create(proto, propertiesObject)该方法创建一个新对象使用现有的对象作为新对象的原型并可以可选地传入属性描述符来定义新对象的属性。可以实现对象的继承。
const parent {sayHello() {console.log(Hello);}
};const child Object.create(parent, {name: {value: Alice,writable: true,enumerable: true,configurable: true}
});console.log(child.name);
child.sayHello(); // 输出Hello