1 聲明對象的兩種語法
//第一種
const person1 = {
name : '張三',
age: 18
}
//第二種
const person2 = new Object({
name : '李四',
age: 20
});
2 如何刪除對象的屬性
let obj = {
name: "lin",
age: 18,
};
delete obj.name //刪除obj的key,將這個屬性刪除
//注意,JS中BUG很多例如重復(fù)刪除不會報錯!
delete obj['name'] //同樣是刪除obj的key,將這個屬性刪除
//如何查詢這個鍵是否刪除成功?
'name' in obj //true是存在, false是不存在(刪除成功)
obj.age = undefined //將obj的key對應(yīng)的值設(shè)置成空.
3 如何查看對象的屬性
-
Object.keys(obj)
查看對象自身所有的屬性.
-
console.dir(obj)
查看自身以及原型共有屬性.
3.1 查看對象的某個屬性
obj['key']
obj.key
-
obj [key]
(key在這時候是一個變量)
3.2 obj[name]
和 obj['name']
不同,
-
obj[name]
里面的name是一個變量.
-
obj['name']===obj.name
(這時候的name是一個字符串)
4 如何修改或增加對象的屬性
- 如果對象有某個屬性,再賦值就是修改屬性.
- 如果對象沒有某個屬性,賦值就是增加屬性.
let obj = { name: "lin" };
obj.name = '123' //修改屬性
obj['name'] = '456' //修改屬性
obj.age =18 //增加屬性
obj['city']='bj' //增加屬性
5 'name' in obj和obj.hasOwnProperty('name') 的區(qū)別
-
obj.hasOwnProperty('toString')
判斷一個屬性是自身的還是共有的
-
'toString' in obj
判斷一個屬性是否是對象的,不會判斷自身還是共有的.