物件屬於一種復合的資料型別,在物件中可以儲存多個不同資料型別的屬性
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。這是本文的重點,我們從增刪改查方面入手,梳理方法的作用和用法,有利於記憶和使...