1. 增(添加属性)
let obj = {};  // 添加一个属性  
obj.name = 'John Doe';  // 或者使用方括号语法添加属性(这对于动态属性名很有用)  
let propName = 'age';  
obj[propName] = 30;  console.log(obj); // 输出: { name: 'John Doe', age: 30 }
2. 删(删除属性)
// 使用 delete 关键字删除属性  
delete obj.age;  console.log(obj); // 输出: { name: 'John Doe' }
3. 改(修改属性)
// 修改一个已存在的属性  
obj.name = 'Jane Doe';  console.log(obj); // 输出: { name: 'Jane Doe' }
4. 查(查询属性)
// 使用点符号或方括号查询属性值  
console.log(obj.name); // 输出: Jane Doe  // 使用 in 关键字检查对象是否包含某个属性  
if ('name' in obj) {  console.log('对象包含 name 属性'); // 输出: 对象包含 name 属性  
}  // 使用 hasOwnProperty 方法检查对象自身(而不是原型链)是否包含某个属性  
if (obj.hasOwnProperty('name')) {  console.log('对象自身包含 name 属性'); // 输出: 对象自身包含 name 属性  
}遍历对象属性
在查询对象属性时,您可能还想遍历对象的所有属性。这可以通过 for...in 循环或 Object.keys()、Object.values() 和 Object.entries() 方法来实现。
// 使用 for...in 循环遍历对象属性  
for (let key in obj) {  if (obj.hasOwnProperty(key)) {  console.log(key, obj[key]); // 输出: name Jane Doe  }  
}  // 使用 Object.keys() 获取属性名数组  
let keys = Object.keys(obj);  
console.log(keys); // 输出: [ 'name' ]  // 使用 Object.values() 获取属性值数组  
let values = Object.values(obj);  
console.log(values); // 输出: [ 'Jane Doe' ]  // 使用 Object.entries() 获取属性和值对的数组  
let entries = Object.entries(obj);  
console.log(entries); // 输出: [ [ 'name', 'Jane Doe' ] ]