1. 属性的查看
- 查看一个对象的所有属性,可以使用Object.keys()方法
let obj = {
name: 'lewis',
age: 17
}
Object.keys(obj) // ['name','age']
2. 属性的删除
- delete命令用于删除对象的属性,删除成功后返回true
- 删除一个不存在的属性,delete不报错,而且返回true
- delete命令只能删除对象本身的属性,无法删除继承的属性
let obj = {
name: 'lewis',
age: 17
}
delete obj.name // true
Object.keys(obj) // ['age']
----
delete obj.hobby // true
----
delete obj.toString // true
obj.toString // function toString() { [native code] }
3. in运算符和hasOwnProperty方法
- in运算符用于检查对象是否包含某个属性,如果包含就返回true,否则返回false
- in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的
- 对象的hasOwnProperty方法判断某个属性是否为对象自身的属性
let obj = {
name: 'lewis',
age: 17
}
'name' in obj // true
'toString' in obj // true
obj.hasOwnProperty('name') // true
obj.hasOwnProperty('toString') // false
4. 属性的遍历:for...in 循环
- for...in循环用来遍历一个对象的全部属性
- 注意点:
- 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性
- 它不仅遍历对象自身的属性,还遍历继承的属性
let obj = {
name: 'lewis',
age: 17
}
for(let key in obj){
console.log(`key:${key}, value:${obj[key]}`)
}
// key:name, value:lewis
// key:age, value:17
网友评论