1.JS對象
JS數(shù)據(jù)類型:
????基本數(shù)據(jù)類型(值類型)5種【String 字符串,Number 數(shù)值,Boolean 布爾值, Null空值,Undefined 未定義,Symbol】(單一數(shù)據(jù))
????var name = "小武";
????var gender = "男";
????var age = "18";
????引用數(shù)據(jù)類型(對象類型)5種【Object對象,Array數(shù)組,F(xiàn)unction函數(shù),還有兩個特殊的對象:RegExp正則,Date日期】(復(fù)合數(shù)據(jù))
????對象類型:
????1.內(nèi)建對象:ES標(biāo)準(zhǔn)對象(Math String Function Object...)
????2.宿主對象:BOM瀏覽器對象模型(由運行環(huán)境提供console.log(); document.write();)?DOM文檔對象模型?
????3.自定義對象:開發(fā)者自己創(chuàng)建的對象,對象在棧內(nèi)存中保存的為其對應(yīng)堆內(nèi)存的地址(
????????創(chuàng)建:
????????????var obj = new Object(); ? Object{屬性名:屬性值}
????????????利用“構(gòu)造函數(shù)”的關(guān)鍵字 new 調(diào)用 Object 函數(shù),“構(gòu)造函數(shù)”是專用于“創(chuàng)建對象”的函數(shù)
????????????var obj = { }; ? Object{ }
????????????利用字面量創(chuàng)建對象
?????????????
????????增刪改查:
? ? ? ? ? ? 添加和修改屬性
????????????obj.name = "小武";???Object{name:"小武"}
????????????或 obj["age"] = 18;?
? ? ? ? ? ?讀取屬性
????????????console.log(obj.name); ? "小武"
????????????或 console.log(obj["age"]);?
??????????????可以利用“[n?]”來傳變量 如:var n = "name";?console.log(obj[n]);?
? ? ? ? ? ? 刪除屬性
????????????delete obj.name
????????????檢查是否包含屬性
????????????console.log("name" in? obj);?
????????????
????????????屬性枚舉:
????????????????for (var n in obj) {
????????????????????console.log(obj[n]);
????????????????}
????)
JS對象方法:
????對象屬性為函數(shù)時,稱為對象的方法“method”
????obj.sayHello =?function() {
????????console.log(obj.name);
????}
? ? obj的sayHello方法調(diào)用:obj.sayHello();
????如:調(diào)用console對象的log方法:console.log();?調(diào)用“Hello”對象的toString方法:"Hello".toString();