欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript對(duì)象(詳細(xì))

 更新時(shí)間:2021年09月10日 09:38:25   作者:不會(huì)代碼的二玲吖  
這篇文章主要介紹了Java中的Script對(duì)象的相關(guān)資料,需要的朋友可以參考下文章里內(nèi)容

JavaScript對(duì)象

1.定義

對(duì)象是引用數(shù)據(jù)類(lèi)型,是保存復(fù)雜數(shù)據(jù)類(lèi)型的容器,它是多個(gè)屬性(數(shù)據(jù))和方法(功能)的集合

它允許動(dòng)態(tài)的添加和刪除屬性

2.對(duì)象的分類(lèi)

(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ù)是專(zhuān)門(mén)用來(lái)創(chuàng)建對(duì)象的函數(shù)

使用typeof檢查一個(gè)對(duì)象時(shí),會(huì)返回object

var obj = new Object();
console.log(typeof obj);

4.訪(fǎng)問(wèn)對(duì)象中的屬性

點(diǎn)訪(fǎng)問(wèn)符 .

o.name      =>  'terry'
o.age       =>   12

[]訪(fǎng)問(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ù)類(lèi)型使用值傳遞:基本數(shù)據(jù)類(lèi)型將值直接保存到內(nèi)存的棧區(qū)中

js中的變量都是保存在棧內(nèi)存中的

         基本數(shù)據(jù)類(lèi)型的值是直接在棧內(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ù)類(lèi)型使用引用傳遞:引用數(shù)據(jù)類(lèi)型的引用地址保存在棧區(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ù)類(lèi)型的值時(shí),就是比較值

而比較兩個(gè)引用數(shù)據(jù)類(lèi)型時(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)查詢(xún)字符串

        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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論