Javascript入門學習第四篇 js對象和數組第1/2頁

來源:互聯網
上載者:User


比較難哦。做好心裡準備吧。。。。。。 深呼吸。。。

1 , for / in :
一種遍曆(枚舉)對象屬性的方法,可以迴圈我們呢事先不知道的屬性。
它可以枚舉處使用者定義的所有屬性,但卻不能枚舉出某些預定義的屬性和方法。
不能枚舉的屬性通常是繼承的屬性

刪除一個對象的屬性:
delete book.width ;
從對象中移除了屬性,在刪除之後,用for/in將不會枚舉該屬性,並且用width in book 也檢測不到該屬性。

for/in 的另一個重要的用途就是跟關聯陣列一起使用:(如果忘記關聯陣列的定義,可以看前面的章節。)
for(stoct in port ){
value + = get_value(stoct) * port[stoct] ;
}

2 , 通用的Object屬性和方法:
1):constructor屬性:
每個對象都有這個屬性,他引用了初始化這個對象的建構函式。
比如:
var d =new Date(); //使用Date()建構函式,建立一個對象 d;
d.constructor ==Date; //true //屬性d.constructor引用 Date ;

這個屬性有助於確定一個對象的類型;
比如:
我們想確定一個值的類型是否是Date 類型:
If((typeof o==”object” )&& (o.constructor==Date)){
// 首先看是否是對象,然後看是否引用Date
}

上面的代碼也可以寫成:
If((typeof o==”object” )&& (o instanceof Date)){
// instanceof 運算子 來檢測o.constructor 屬性的值。
}

3 , toStirng()和toLocaleString()方法:
1):toLocaleStirng() 返回對象的一個本地化字串。
toString和toLocaleString一般都返回相同,但在子類中,有點區別:
比如:
Array , Date和Number都定義了返回本地化的值的toLocaleString()方法.

4 , hasOwnProperty()和propertyIsEnumerable()方法:
1):hasOwnProperty
var a = { x : 1 , y : 2};
var k =a.hasOwnProperty("x");
alert(k) //true
alert( Math.hasOwnProperty("z") );//false
alert( Math.hasOwnProperty("cos") );//true
註:Math,cos() : 以弧度為單位計算並返回指定角度的餘弦值。
propertyIsEnumerable()跟返回的結果跟hasOwnProperty()相同;

4 ,isPrototypeOf()方法:
如果方法所屬的對象是參數的原型對象。
var a = { x : 1 , y : 2};
var k1= Object.prototype.isPrototypeOf(a); // o.constructor = Object
var k2= Object.prototype.isPrototypeOf(Function); // Function.constructor = Object
alert(k1) //true
alert(k2) //true

5,數組:
1)建立數組:
數組直接量:
var es = [ ] ;
複雜點 var es = [ [ 1, {x:1 , y : 2}] , [ 2, {x:3 , y : 4}] ];
還有一種方式:使用Array() 建構函式:
V1 : 無參數:
var a = new Array();
空數組,和 var a =[ ] 相等 ;

V2 : 多個參數:
var a = new Array( 1,2,3,”tt”) ; //可以看出直接量定義 簡單些。

V3 : 1個數字參數:
var a = new Array (3);
具有3個元素的數組,每個元素的值為 undefined ;

6, 數組的下標(索引):
大小 : 0 <= 下標 < 2的32次方 – 1 ;
如果不在範圍內,js會講它轉換為一個字串,作為對象屬性的名稱;
而不是作為數組的下標;
比如:
a[-1.2] = “test” ; // 等價於 a[“-1.2”] =”test” ;
//代碼解釋: 建立一個名為 “-1.2”的屬性,而不是定義一個 新的數組元素。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.