感謝阮一峰
object(物件)是js的核心概念,也是最重要的資料型別——阮一峰用最簡單的話說,物件就是一組無序鍵值對的集合。
var obj = ,
};obj.speed = 10;
這樣,obj就指向了乙個物件,其內部兩個鍵值對又稱為成員,color是鍵名,black是鍵值
如果不同的變數名指向同乙個物件,那麼它們都是這個物件的引用,也就是說指向同乙個記憶體位址。修改其中乙個變數,會影響到其他所有變數。
var o1 = {};
var o2 = o1;
o1.a = 1;
o2.a // 1
o2.b = 2;
o1.b // 2
上面**中,o1和o2指向同乙個物件,因此為其中任何乙個變數新增屬性,另乙個變數都可以讀寫該屬性。
此時,如果取消某乙個變數對於原物件的引用,不會影響到另乙個變數。
var o1 = {};
var o2 = o1;
o1 = 1;
o2 // {}
題外話
讀取屬性
var obj = ;
obj.p // "hello world"
obj['p'] // "hello world"
可用方括號或者點運算子來讀取屬性。注意,數字鍵名只可以用方括號運算子來讀取
檢視
var obj = ;
object.keys(obj);
// ['key1', 'key2']
屬性是否存在
in運算子用於檢查物件是否包含某個屬性(注意,檢查的是鍵名,不是鍵值),如果包含就返回true,否則返回false。它的左邊是乙個字串,表示屬性名,右邊是乙個物件。
var obj = ;
'p' in obj // true
'tostring' in obj // true
需要注意的是:in運算子無法判定屬性是物件自身還是繼承的,因此可以用下面方法來準確判斷:
var obj = {};
if ('tostring' in obj)
for...in遍歷物件的屬性
var obj = ;
for (var i in obj)
同樣,for...in配合hasownproperty()可判斷屬性是繼承還是自身。 JavaScript 資料型別
變數 宣告區域性變數 varmessage 宣告全部變數 message typeof 例如 var message some string alert typeof message string alert typeof message string alert typeof 95 number ...
Javascript資料型別
ecmascript中有5種簡單資料型別 也稱為基本資料型別 1.undefined 該型別只有乙個值,即undefined。在使用var宣告但未初始化時,這個變數就是undefined 2.null 該型別只有乙個值,即null。null undefined 3.boolean 4.number ...
JavaScript資料型別
undefined派生於null,因此在使用 進行比較時會返回true 沒有必要將變數值顯示宣告undefined 宣告空物件時應將其值賦值為nullundefined與null的關係 3 boolean true為真,false為假 true不一定 1,false不一定 0 使用boolean 進...