如果你是一個有經驗的開發者,你可能會認為這個問題比較簡單,但是有的時候,我們會感覺這個問題比較有趣。
			首先我們來看看數組的定義:“An array is just a list of values which can be accessed by using an integer as the “key”. The list starts at 0 and goes up from there.”,下面我們用對象來描述數組的定義:
			 
			復制代碼代碼如下:
			
		var arr = ["benjamin", "zuojj"];
		//=>
		var arr = {
		    "0": "benjamin",
		    "1": "zuojj"
		};
			 
			看上面的例子,總感覺缺少了什么,OK,數組的長度:
			 
			復制代碼代碼如下:
			
		 var arr = {
		    "0"      : "benjamin",
		    "1"      : "zuojj",
		    "length" : 2
		};
			 
			我們知道,在Javascript語言中,數組是一個特殊的對象,我們可以使用訪問數組的方式來訪問對象的屬性,同時,數組也可以像對象那樣添加屬性。看下例:
			 
			復制代碼代碼如下:
					var arr = {
		    "0"      : "benjamin",
		    "1"      : "zuojj",
		    "length" : 2
		};
		//Outputs: "benjamin"
		console.log(arr[0]);
		//Outputs: 2
		console.log(arr.length);		
			 
					var arr = ["benjamin", "zuojj"];
			arr.url = "m.survivalescaperooms.com";
			//Outputs: "m.survivalescaperooms.com"
			console.log(arr.url);
			//Outputs: 2
			console.log(arr.length);
	 			 
			下面我們來看看數組的方法,數組有很多可操作的方法,如indexOf/slice/splice/sort等,我們知道實際上這些方法存在于Array.prototype中。看下面的例子:
			 
			復制代碼代碼如下:
			
		var arr = ["benjamin", "zuojj"];
		//Outputs: 1
		console.log(arr.indexOf("zuojj"));
		arr.indexOf = function(str) {
		    return "It is customed indexOf!";
		}
		//Outputs: "It is customed indexOf!"
		console.log(arr.indexOf("zuojj"));
				 
			事實上,我們可以使用對象重載所有的數組方法。看下面的push方法的例子:
			 
			復制代碼代碼如下:
			
		var arr = {
		    length: 0,
		    push: function(val) {
		        //賦值
		        this[this.length] = val;
		        //更新數組長度
		        this.length += 1;
		        //返回數組長度
		        return this.length;
		    }
		}
		arr.push("zuojj");
		arr.push("benjamin");
		//Object {0: "zuojj", 1: "benjamin", length: 2, push: function}
		console.log(arr);
			 
			但是有一個是不能從新實現的,數組的字面量定義:
			 
			復制代碼代碼如下:
			var arr = ["benjamin", "zuojj"];
			 
			但是我們可以使用構造函數來代替:
			 
			復制代碼代碼如下:
			var arr = new Array("benjamin", "zuojj");
			 
			如果不適用字面量定義數組,那么我們可以重定義數組的定義,以我們自己的方式。
			 
			復制代碼代碼如下:
			var myArr = new CustomArray("benjamin", "zuojj");
			 
			現在你知道javascript中數組是如何工作的了吧,希望對大家有所幫助。