返回一个包含对象自身所有属性名称的数组。
let person = {
firstName: "John",
lastName: "Doe"
};
let keys = Object.keys(person);
console.log(keys); // 输出: ["firstName", "lastName"]
返回一个包含对象自身所有属性值的数组。
let values = Object.values(person);
console.log(values); // 输出: ["John", "Doe"]
返回一个包含对象自身所有属性的键值对(数组形式)的数组。
let entries = Object.entries(person);
console.log(entries); // 输出: [["firstName", "John"], ["lastName", "Doe"]]
将一个或多个源对象的属性复制到目标对象中。
let target = {};
let source = { firstName: "John", lastName: "Doe" };
Object.assign(target, source);
console.log(target); // 输出: { firstName: "John", lastName: "Doe" }
检查对象自身是否具有指定属性。
console.log(person.hasOwnProperty("firstName")); // 输出: true
console.log(person.hasOwnProperty("age")); // 输出: false
Object.getOwnPropertyNames(obj)
返回一个包含对象自身所有属性名称的数组,包括不可枚举属性。
let propertyNames = Object.getOwnPropertyNames(person);
console.log(propertyNames); // 输出: ["firstName", "lastName"]
let person = {
firstName: "John",
lastName: "Doe",
age: 30
};
// 删除对象的一个属性
delete person.age;
console.log(person); // 输出: { firstName: "John", lastName: "Doe" }
如果不想改变原对象的属性我们可以这样做
let person = { firstName: "John", lastName: "Doe", age: 30 };
const {firstName,lastName}=person
const newperson={firstName,lastName}
console.log(newperson)// 输出: { firstName: "John", lastName: "Doe" }
在JavaScript中,对象的属性可以分为可枚举属性和不可枚举属性。可枚举属性是可以通过循环或其他遍历方法遍历出来的属性,而不可枚举属性则不会被遍历出来。默认情况下,大部分对象属性都是可枚举的。
不过,有些属性可能不适合被遍历,或者是一些内部属性,因此可以将它们设置为不可枚举属性。在 JavaScript 中,你可以使用 Object.defineProperty()
或 Object.defineProperties()
方法来定义不可枚举属性。
let person = {
firstName: "John",
lastName: "Doe"
};
Object.defineProperty(person, "age", {
value: 30,
enumerable: false // 将属性设置为不可枚举
});
//对象遍历
for (var prop in person) {
console.log(prop); // 输出: "firstName" 和 "lastName"
}
console.log(Object.keys(person)); // 输出: ["firstName", "lastName"]
age
属性被设置为不可枚举,所以在使用 for...in
循环或 Object.keys()
方法遍历对象时,age
属性不会被列出。