您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何理解javascript面向對象技術基礎,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
數組
我們已經提到過,對象是無序數據的集合,而數組則是有序數據的集合,數組中的數據(元素)通過索引(從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一個.
Js代碼
var array1 = []; //創建空數組 var array2 = new Array(); //創建空數組 array1 = [1,"s",[3,4],{"name1":"NAME1"}]; // alert(array1[2][1]); //4 訪問數組中的數組元素 alert(array1[3].name1); //NAME1 訪問數組中的對象 alert(array1[8]); //undefined array2 = [,,]; //沒有數值填入只有逗號,則對應索引處的元素為undefined alert(array2.length); //3 alert(array2[1]); //undefined
用new Array()來創建數組時,可以指定一個默認的大小,其中的值此時為undefined,以后可以再給他們賦值.但是由于javascript中的數組的長度是可以任意改變的,同時數組中的內容也是可以任意改變的.
因此這個初始化的長度實際上對數組沒有任何的約束力.對于一個數組,如果對超過它***長度的索引賦值,則會改變數組的長度,同時會對沒有賦值的索引處賦值undefined,看下面的例子.
Js代碼
var array = new Array(10); alert(array.length); //10 alert(array[4]); //undefined array[100] = "100th"; //這個操作會改變數組的長度,同時將10-99索引對應的值設為undefined alert(array.length); //101 alert(array[87]); //undefined
可以用delete操作符刪除數組的元素,注意這個刪除僅僅是將數組在該位置的元素設為undefined,數組的長度并沒有改變.我們已經使用過了數組的length屬性,length屬性是一個可以讀/寫的屬性,也就是說我們可以通過改變數組的length屬性來任意的改變數組的長度.如果將length設為小于數組長度的值,則原數組中索引大于length-1的值都會被刪除.如果length的值大于原始數組的長度,則在它們之間的值設為undefined.
Js代碼
var array = new Array("n1","n2","n3","n4","n5"); //五個元素的數組 var astring = ""; for(var i=0; i<array.length; i++) { //循環數組元素 astring += array[i]; } alert(astring); //n1n2n3n4n5 delete array[3]; //刪除數組元素的值 alert(array.length + "_" + array[3]) //5_undefined array.length = 3; //縮減數組的長度 alert(array[3]); //undefined array.length = 8; //擴充數組的長度 alert(array[4]); //undefined
對于數組的其他方法諸如join/reverse等等,在這就不再一一舉例.
通過上面的解釋,我們已經知道,對象的屬性值是通過屬性的名字(字符串類型)來獲取,而數組的元素是通過索引(整數型 0~~2**32-1)來得到值.數組本身也是一個對象,所以對象屬性的操作也完全適合于數組.
關于如何理解javascript面向對象技術基礎就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。