<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最愛Java

    書山有路勤為徑,學海無涯苦作舟

    javascript面向對象技術基礎(二)

            本文轉載于javaeye(http://www.javaeye.com/wiki/Object_Oriented_JavaScript/1279-javascript-object-oriented-technology-one),只進行了重新排版以便收藏。
            文中所有英文語句(程序語句除外),都引自<<javascript-the definitive guide,5th edition>>。

    ------------------------------------------------------------------------------------
    數組
            我們已經提到過,對象是無序數據的集合,而數組則是有序數據的集合,數組中的數據(元素)通過索引(從0開始)來訪問,數組中的數據可以是任何的數據類型。數組本身仍舊是對象,但是由于數組的很多特性,通常情況下把數組和對象區別開來分別對待(Throughout this book, objects and arrays are often treated as distinct datatypes.  This is a useful and reasonable simplification; you can treat objects and arrays as separate types for most of your JavaScript programming.To fully understand the behavior of objects and arrays, however, you have to know the truth: an array is nothing more than an object with a thin layer of extra functionality. You can see this with the typeof operator: applied to an array value, it returns the string "object".  --section7.5).
            創建數組可以用"[]"操作符,或者是用Array()構造函數來new一個。

    1var array1 = [];  //創建空數組   
    2var array2 = new Array();  //創建空數組   
    3array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //   
    4alert(array1[2][1]);  //4   訪問數組中的數組元素   
    5alert(array1[3].name1); //NAME1 訪問數組中的對象   
    6alert(array1[8]);   //undefined   
    7array2 = [,,];  //沒有數值填入只有逗號,則對應索引處的元素為undefined   
    8alert(array2.length); //3   
    9alert(array2[1]);     //undefined

            用new Array()來創建數組時,可以指定一個默認的大小,其中的值此時為undefined,以后可以再給他們賦值.但是由于javascript中的數組的長度是可以任意改變的,同時數組中的內容也是可以任意改變的,因此這個初始化的長度實際上對數組沒有任何的約束力。對于一個數組,如果對超過它最大長度的索引賦值,則會改變數組的長度,同時會對沒有賦值
    的索引處賦值undefined,看下面的例子:

    1var array = new Array(10);   
    2alert(array.length);   //10   
    3alert(array[4]);       //undefined   
    4array[100= "100th";  //這個操作會改變數組的長度,同時將10-99索引對應的值設為undefined   
    5alert(array.length);   //101   
    6alert(array[87]);      //undefined  

             可以用delete操作符刪除數組的元素,注意這個刪除僅僅是將數組在該位置的元素設為undefined,數組的長度并沒有改變。我們已經使用過了數組的length屬性,length屬性是一個可以讀/寫的屬性,也就是說我們可以通過改變數組的length屬性來任意的改變數組的長度。如果將length設為小于數組長度的值,則原數組中索引大于length-1的值都會被刪除。如果length的值大于原始數組的長度,則在它們之間的值設為undefined。

     1var array = new Array("n1","n2","n3","n4","n5");  //五個元素的數組   
     2var astring = "";   
     3for(var i=0; i<array.length; i++{           //循環數組元素   
     4    astring += array[i];   
     5}
       
     6alert(astring);       //n1n2n3n4n5   
     7delete array[3];                   //刪除數組元素的值   
     8alert(array.length + "_" + array[3])  //5_undefined   
     9  
    10array.length = 3;    //縮減數組的長度   
    11alert(array[3]);     //undefined   
    12array.length = 8;    //擴充數組的長度   
    13alert(array[4]);     //undefined  

            對于數組的其他方法諸如join/reverse等等,在這就不再一一舉例。

            通過上面的解釋,我們已經知道,對象的屬性值是通過屬性的名字(字符串類型)來獲取,而數組的元素是通過索引(整數型 0~~2**32-1)來得到值。數組本身也是一個對象,所以對象屬性的操作也完全適合于數組。

    1var array = new Array("no1","no2");   
    2array["po"= "props1";   
    3alert(array.length);   //2   
    4//對于數組來說,array[0]同array["0"]效果是一樣的(?不確定,測試時如此)   
    5alert(array[0+ "_" + array["1"+ "_" + array.po);//no1_no2_props1  

    posted on 2009-10-20 10:46 Brian 閱讀(309) 評論(2)  編輯  收藏 所屬分類: JScript

    評論

    # re: javascript面向對象技術基礎(二) 2013-10-22 17:16 zx

    rtwtwatwatst  回復  更多評論   

    # re: javascript面向對象技術基礎(二) 2013-10-22 17:18 cxs

    @zx
    什么意思?  回復  更多評論   

    公告


    導航

    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产激情在线一区| 人妻巨大乳hd免费看| 国产极品美女高潮抽搐免费网站| 大片免费观看92在线视频线视频| 亚洲av无码成h人动漫无遮挡| 日本亚洲免费无线码| 日韩精品视频在线观看免费| 久久91亚洲精品中文字幕| 日韩吃奶摸下AA片免费观看| 一级中文字幕免费乱码专区| 亚洲精品国产情侣av在线| 免费人成年激情视频在线观看| 国产猛男猛女超爽免费视频| 亚洲一本到无码av中文字幕| 亚洲香蕉成人AV网站在线观看| 成年在线观看网站免费| 五月婷婷免费视频| 亚洲一区二区三区丝袜| 亚洲第一中文字幕| 免费v片在线观看| 嫖丰满老熟妇AAAA片免费看| 羞羞视频免费网站在线看| 亚洲午夜无码久久久久小说| 亚洲成人动漫在线| 亚洲女人被黑人巨大进入| 亚洲人成网站免费播放| 丁香花在线视频观看免费| 久久亚洲中文无码咪咪爱| 亚洲美女人黄网成人女| 亚洲欧洲久久av| 日韩免费三级电影| 精品久久久久成人码免费动漫 | 日日操夜夜操免费视频| 久久久久高潮毛片免费全部播放| 激情吃奶吻胸免费视频xxxx| 亚洲91精品麻豆国产系列在线| 久久久久亚洲精品无码系列| 亚洲综合精品网站在线观看| 日韩一品在线播放视频一品免费| 免费观看激色视频网站(性色)| 最近2019中文免费字幕在线观看|