JS物件中屬性的增刪改查

2021-09-02 13:27:24 字數 2182 閱讀 9116

物件屬於一種復合的資料型別,在物件中可以儲存多個不同資料型別的屬性

1.內建物件

-在es標準中定義的物件,在任何的es的實現中都可以使用

-比如:math string number boolean function object...

2.宿主物件

-由js的執行環境提供的物件,目前來講主要指由瀏覽器提供的物件

-比如bom dom

3.自定義物件

-由開發人員自己建立的物件

方法一:

使用new關鍵字呼叫的函式,是建構函式constructor(建構函式是專門用來建立物件的函式)

使用typeof檢查乙個物件時,會返回object

var obj = new object();

console.log(typeof obj);//object

方法二:使用物件字面量來建立乙個物件

使用物件字面量,可以在建立物件時,直接指定物件中的屬性

語法:

物件字面量的屬性名可以加引號也可以不加,建議不加,

如果要使用一些特殊的名字,則必須加引號

屬性名和屬性值是一組一組的名值對結構,

名與值之間使用:連線,多個名值對之間使用逗號隔開

如果乙個屬性之後沒有其他的屬性了,就不要寫逗號

var  obj2 = 

};console.log(obj2);

方法三:使用工廠方法建立物件 ,通過該方法可以大批量的建立物件 

function creatperson(name,age,gender)

//將新的物件返回

return obj;

} var obj2 = creatperson("豬八戒",28,"男");

obj2.sayname()

在物件中儲存的值稱為屬性

向物件中新增屬性

語法:物件.屬性名 = 屬性值;

//向object中新增乙個屬性值

obj.name = "zy";

//向obj中新增gender屬性

obj.gender = "男";

//向obj中新增age屬性

obj.age = 18;

物件的屬性名不強制要求遵守識別符號的規範,什麼亂七八糟的名字都可以使用,但是我們使用時還是盡量按照識別符號的規範去做。

如果使用特殊的屬性名,不能使用物件.屬性名的方式來操作

需要使用另一種方式

語法:物件["屬性名"] = 屬性值

使用[ ]這種形式去操作屬性,更加的靈活

在[ ]中可以直接傳遞乙個變數,這樣變數值是多少就會讀取那個屬性

obj["123"] = 789;

obj["nihao"] = "nihao";

var n = "123";

console.log(obj[n]);//789 因為n的值為"123",而obj物件"123"的屬性值為789

js中的屬性值可以是任意的資料型別,甚至它也可以是乙個物件

語法:物件.屬性名

如果讀取物件中沒有的屬性,不會報錯而是返回undefined

in 運算子

-通過該運算子可以檢查乙個物件是否含有指定的屬性

如果有則返回true,沒有則返回false

-語法:

"屬性名" in 物件

//檢查obj中是否含有test2屬性

console.log("test2" in obj);//false

console.log("test" in obj);//true

語法:物件.屬性名 = 新值

obj.age = 22;
語法:delete 物件.屬性名

delete obj.age;

class屬性增刪改查

今天發現自己每寫乙個功能就去上網查查,然後繼續寫,平靜下來反思,我才知道是因為自己太懶了,不願意總結,今天特地為此做總結。例子 檢視 var myinput document.getelementbyid myinput 方式1 console.log myinput.classname 方式2 c...

增刪改查及屬性

節點的增刪改查 節點建立 元素節點 document.createelement tag標籤名稱 文字節點 document.createtextnode 文字內容 屬性設定 node.setattribute 名稱,值 節點追加 父節點.insertbefore newnode,oldnode 將...

增刪改查 JS陣列增刪改查這點事兒

1 length屬性 length屬性是陣列最重要的屬性,沒有之一,length屬性告訴我們這個陣列內有多少個資料元素,當length 0時說明陣列時乙個空陣列。我們想要遍歷陣列時可以直接將遍歷的終點設為 length 1。這是本文的重點,我們從增刪改查方面入手,梳理方法的作用和用法,有利於記憶和使...