1. 程式人生 > 程式設計 >JavaScript物件(詳細)

JavaScript物件(詳細)

目錄
  • 物件
    • 1.定義
    • 2.物件的分類
    • 3.定義物件
    • 4.訪問物件中的屬性
    • 5.給物件新增屬性
    • 6.刪除物件屬性
    • 7.Object根建構函式
    • 8.物件屬性的檢測
    • 9.引用傳遞和值傳遞
    • 10.物件的序列化(把物件變為字串)
    • 11.增強for迴圈(for in)

Script物件

1.定義

物件是引用資料型別,是儲存複雜資料型別的容器,它是多個屬性(資料)和方法(功能)的集合

它允許動態的新增和刪除屬性

2.物件的分類

(1)內建物件

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

比如:math string number boolean object...

(2)宿主對

 www.cppcns.com

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

  比如BOM DOM

(3)自定義物件

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

3.定義物件

物件字面量

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

語法:{屬性名:屬性值,屬性名:屬性值...}

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

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

以'{ }'作為邊界,屬性與屬性之間用','分開,屬性和屬性值之間使用':'隔開

var obj={};

建構函式建立物件

使用new關鍵字呼叫的函式,是建構函式constructor

建構函式是專門用來建立物件的函式

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

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

4.訪問物件中的屬性

點訪問符 .

o.name      =>  'terry'
o.age       =>http://www.cppcns.com   12

[]訪問符

o['name']   =>  'terry'
o['age']    =>  12

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

5.給物件新增屬性

物件.屬性=屬性值;

o.gender='女';

6.刪除物件屬性

delete 物件.屬性;

delete o.gender;

7.Object根建構函式

所有的物件都直接或者間接繼承Objecthttp://www.cppcns.com,都能呼叫Object原型裡面的方法

var o=new Object();
var arr=new Array();

8.物件屬性的檢測

in 運算子

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

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

語法:

"屬性名" in 物件

'name' in Obj;

9.引用傳遞和值傳遞

基本資料型別使用值傳遞:基本資料型別將值直接儲存到記憶體的棧區中

js中的變數都是儲存在棧記憶體中的

         基本資料型別的值是直接在棧記憶體中儲存

         值與值之間是獨立存在的,修改一個變數不會影響其他的變數
var a=123;
var b=a;
a++;
console.log('a='+a);    //124
console.log('b='+b);    //123

引用資料型別使用引用傳遞:引用資料型別的引用地址儲存在棧區中,實際的值儲存在堆區中,該引用地址指向堆區中的空間

物件是儲存到堆記憶體中的,每建立一個新的物件,就會在堆記憶體中開闢出一個新的空間

而變數儲存的是物件的記憶體地址(物件的引用),如果兩個變數儲存的是同一個物件引用

當一個變數修改屬性時,另一個也會受到影響

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

當比較兩個基本資料型別的值時,就是比較值

而比較兩個引用資料型別時,它是比較物件的記憶體地址

如果兩個物件是一模一樣的,但是地址不同,它也會返回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.物件的序列化(把物件變為字串)

1)常規轉換

obj.tostring()

2)轉化為json字串

JSON.stringify(obj)

3)查詢字串

var qs= require('querystring'); //引入node.js模組

qs.stringify(obj) =>name=tom&age=12

11.增強for迴圈(for in)

遍歷物件

語法:
for(var 變數 in 物件){ }
for...in語句 物件中有幾個屬性,迴圈體就會執行幾次

每次執行時,會將物件中的一個屬性名賦值給變數

var obj={
    name:'孫悟空',age:18,gender:'男',address:'花果山'
}
 
for(var n in obj){
    console.log('屬性名:'+n);
    console.log('屬性值:'+obj[n]);
    }

到此這篇關於Java中的Script物件(詳細)的文章就介紹到這了,更多相關JavaScript物件內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!