JavaScript對(duì)象(詳細(xì))
JavaScript對(duì)象
1.定義
對(duì)象是引用數(shù)據(jù)類型,是保存復(fù)雜數(shù)據(jù)類型的容器,它是多個(gè)屬性(數(shù)據(jù))和方法(功能)的集合
它允許動(dòng)態(tài)的添加和刪除屬性
2.對(duì)象的分類
(1)內(nèi)建對(duì)象
由ES標(biāo)準(zhǔn)中定義的對(duì)象,在任何的ES的實(shí)現(xiàn)中都可以使用
比如:math string number boolean object...
(2)宿主對(duì)象
由js的運(yùn)行環(huán)境提供的對(duì)象,目前來(lái)講主要由瀏覽器提供的對(duì)象
比如BOM DOM
(3)自定義對(duì)象
由開(kāi)發(fā)人員自己創(chuàng)建的對(duì)象
3.定義對(duì)象
對(duì)象字面量
使用對(duì)象字面量,可以在創(chuàng)建對(duì)象時(shí),直接指定對(duì)象中的屬性
語(yǔ)法:{屬性名:屬性值,屬性名:屬性值...}
對(duì)象字面量的屬性名可以加引號(hào),也可以不加,建議不加
如果要使用一些特殊的名字,則必須加引號(hào)
以'{ }'作為邊界,屬性與屬性之間用','分開(kāi),屬性和屬性值之間使用':'隔開(kāi)
var obj={};
構(gòu)造函數(shù)創(chuàng)建對(duì)象
使用new關(guān)鍵字調(diào)用的函數(shù),是構(gòu)造函數(shù)constructor
構(gòu)造函數(shù)是專門用來(lái)創(chuàng)建對(duì)象的函數(shù)
使用typeof檢查一個(gè)對(duì)象時(shí),會(huì)返回object
var obj = new Object(); console.log(typeof obj);
4.訪問(wèn)對(duì)象中的屬性
點(diǎn)訪問(wèn)符 .
o.name => 'terry' o.age => 12
[]訪問(wèn)符
o['name'] => 'terry' o['age'] => 12
如果讀取對(duì)象中沒(méi)有的屬性,不會(huì)報(bào)錯(cuò)而是返回undefined
5.給對(duì)象添加屬性
對(duì)象.屬性=屬性值;
o.gender='女';
6.刪除對(duì)象屬性
delete 對(duì)象.屬性;
delete o.gender;
7.Object根構(gòu)造函數(shù)
所有的對(duì)象都直接或者間接繼承Object,都能調(diào)用Object原型里面的方法
var o=new Object(); var arr=new Array();
8.對(duì)象屬性的檢測(cè)
in 運(yùn)算符
通過(guò)該運(yùn)算符可以檢查一個(gè)對(duì)象中是否含有指定的屬性
如果有,返回true,沒(méi)有則返回false
語(yǔ)法:
"屬性名" in 對(duì)象
'name' in Obj;
9.引用傳遞和值傳遞
基本數(shù)據(jù)類型使用值傳遞:基本數(shù)據(jù)類型將值直接保存到內(nèi)存的棧區(qū)中
js中的變量都是保存在棧內(nèi)存中的
基本數(shù)據(jù)類型的值是直接在棧內(nèi)存中存儲(chǔ)
值與值之間是獨(dú)立存在的,修改一個(gè)變量不會(huì)影響其他的變量
var a=123;
var b=a;
a++;
console.log('a='+a); //124
console.log('b='+b); //123
引用數(shù)據(jù)類型使用引用傳遞:引用數(shù)據(jù)類型的引用地址保存在棧區(qū)中,實(shí)際的值保存在堆區(qū)中,該引用地址指向堆區(qū)中的空間
對(duì)象是保存到堆內(nèi)存中的,每創(chuàng)建一個(gè)新的對(duì)象,就會(huì)在堆內(nèi)存中開(kāi)辟出一個(gè)新的空間
而變量保存的是對(duì)象的內(nèi)存地址(對(duì)象的引用),如果兩個(gè)變量保存的是同一個(gè)對(duì)象引用
當(dāng)一個(gè)變量修改屬性時(shí),另一個(gè)也會(huì)受到影響
var obj=new Object(); obj.name='terry'; var obj2=obj; //修改obj的name屬性 obj.name='tom'; console.log(obj.name); //tom console.log(obj2.name); //tom
當(dāng)比較兩個(gè)基本數(shù)據(jù)類型的值時(shí),就是比較值
而比較兩個(gè)引用數(shù)據(jù)類型時(shí),它是比較對(duì)象的內(nèi)存地址
如果兩個(gè)對(duì)象是一模一樣的,但是地址不同,它也會(huì)返回false
var c=10; var d=10; console.log(c==d); //true var obj3=new Object; var obj4=new Object; obj3.name='tom'; obj4.name='tom'; console.log(obj3==obj4); //false
10.對(duì)象的序列化(把對(duì)象變?yōu)樽址?
1)常規(guī)轉(zhuǎn)換
obj.tostring()
2)轉(zhuǎn)化為json字符串
JSON.stringify(obj)
3)查詢字符串
var qs= require('querystring'); //引入node.js模塊
qs.stringify(obj) =>name=tom&age=12
11.增強(qiáng)for循環(huán)(for in)
遍歷對(duì)象
語(yǔ)法:
for(var 變量 in 對(duì)象){ }
for...in語(yǔ)句 對(duì)象中有幾個(gè)屬性,循環(huán)體就會(huì)執(zhí)行幾次每次執(zhí)行時(shí),會(huì)將對(duì)象中的一個(gè)屬性名賦值給變量
var obj={
name:'孫悟空',
age:18,
gender:'男',
address:'花果山'
}
for(var n in obj){
console.log('屬性名:'+n);
console.log('屬性值:'+obj[n]);
}
到此這篇關(guān)于Java中的Script對(duì)象(詳細(xì))的文章就介紹到這了,更多相關(guān)JavaScript對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript數(shù)據(jù)可視化:ECharts制作地圖
- 超詳細(xì)的JavaScript基本語(yǔ)法規(guī)則
- JavaScript中類型的強(qiáng)制轉(zhuǎn)換與隱式轉(zhuǎn)換詳解
- JavaScript實(shí)現(xiàn)通過(guò)滑塊改變網(wǎng)頁(yè)顏色
- JavaScript es6中var、let以及const三者區(qū)別案例詳解
- JavaScript 中this指向問(wèn)題案例詳解
- JavaScript函數(shù)之call、apply以及bind方法案例詳解
- 詳解JavaScript中Arguments對(duì)象用途
- JavaScript CollectGarbage函數(shù)案例詳解
- JavaScript中BOM和DOM詳解
- JavaScript setTimeout與setTimeinterval使用案例詳解
- JavaScript定時(shí)器實(shí)現(xiàn)限時(shí)秒殺功能
- JavaScript實(shí)現(xiàn)限時(shí)秒殺功能
相關(guān)文章
document 和 document.all 分別什么時(shí)候用
document 和 document.all 分別什么時(shí)候用...2006-06-06
JavaScript中isPrototypeOf函數(shù)
這篇文章主要介紹了JavaScript中isPrototypeOf函數(shù),isPrototypeOf() 是 Object函數(shù)(類)的下的一個(gè)方法,用于判斷當(dāng)前對(duì)象是否為另外一個(gè)對(duì)象的原型,如果是就返回 true,否則就返回 false,下面來(lái)看看詳細(xì)內(nèi)容,需要的朋友可以參考一下2021-11-11
微信小程序 this和that詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了微信小程序 this和that詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
國(guó)慶節(jié)到了,利用JS實(shí)現(xiàn)一個(gè)生成國(guó)慶風(fēng)頭像的小工具 詳解實(shí)現(xiàn)過(guò)程
明天就是國(guó)慶節(jié)了,最近看到好多好友換了國(guó)慶風(fēng)的頭像,感覺(jué)這個(gè)挺有意思,就找到了類似的源碼研究了一番,并進(jìn)行了改造(并非原創(chuàng),只是進(jìn)行了改造,只要想分享一下實(shí)現(xiàn)思路)。下面就來(lái)看看如何實(shí)現(xiàn)一鍵生成國(guó)慶風(fēng)頭像小工具。​2021-09-09
原型和原型鏈 prototype和proto的區(qū)別詳情
原型是function對(duì)象下的屬性,它定義了構(gòu)造函數(shù)的共同祖先,也就是一個(gè)父子級(jí)的關(guān)系,子對(duì)象會(huì)繼承父對(duì)象的方法和屬性,每個(gè)實(shí)例對(duì)象下都有__proto__屬性,通過(guò)屬性__proto__指向構(gòu)造函數(shù)的原型對(duì)象,當(dāng)?shù)竭_(dá)末端時(shí),返回null,這樣一層一層向頂端查找,就形成了原型鏈2021-10-10
微信小程序 底部導(dǎo)航欄目開(kāi)發(fā)資料
這篇文章主要介紹了微信小程序 底部導(dǎo)航欄目開(kāi)發(fā)資料的相關(guān)資料,微信小程序底部想要有一個(gè)漂亮的導(dǎo)航欄目,不知道怎么制作,于是百度找到了本篇文章,分享給大家,需要的朋友可以參考下2016-12-12
Project?Reference優(yōu)化TypeScript編譯性能示例
這篇文章主要為大家介紹了Project?Reference優(yōu)化TypeScript編譯性能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

