認識JavaScript陣列物件的length屬性
很久沒寫Blog了,最近總結了一些javascript不同於其他語言的特點,陣列的length屬性就是一例。
陣列物件僅有一個屬性, 這個屬性就是length,它表示陣列的長度,即其中元素的個數。因為陣列的索引總是由0開始,所以一個陣列的上下限分別是:0和length-1。和其 他大多數語言不同的是,javascript陣列的length屬性是可變的,這一點需要特別注意。當length屬性被設定得更大時,整個陣列的狀態事 實上不會發生變化,僅僅是length屬性變大;當length屬性被設定得比原來小時,則原先陣列中索引大於或等於length的元素的值全部被丟失。 下面是演示改變length屬性的例子:
var arr=[12,23,5,3,25,98,76,54,56,76];
//定義了一個包含10個數字的陣列
alert(arr.length); //顯示陣列的長度10
arr.length=12; //增大陣列的長度
alert(arr.length); //顯示陣列的長度已經變為12
alert(arr[8]); //顯示第9個元素的值,為56
arr.length=5; //將陣列的長度減少到5,索引等於或超過5的元素被丟棄
alert(arr[8]); //顯示第9個元素已經變為"undefined"
arr.length=10; //將陣列長度恢復為10
alert(arr[8]); //雖然長度被恢復為10,但第9個元素卻無法收回,顯示"undefined"
由上面的程式碼我們可以清楚的看到length屬性的性質。但length物件不僅可以顯式的設定,它也有可能被隱式修改。javascript中可 以使用一個未宣告過的變數,同樣,也可以使用一個未定義的陣列元素(指索引超過或等於length的元素),這時,length屬性的值將被設定為所使用 元素索引的值加1。例如下面的程式碼:
alert(arr.length);
arr[15]=34;
alert(arr.length);
程式碼中同樣是先定義了一個包含10個數字的陣列,通過alert語句可以看出其長度為10。隨後使用了索引為15的元素,將其賦值為15, 即arr[15]=34,這時再用alert語句輸出陣列的長度,得到的是16。無論如何,對於習慣於強型別程式設計的開發人員來說,這是一個很令人驚訝的特 性。事實上,使用new Array()形式建立的陣列,其初始長度就是為0,正是對其中未定義元素的操作,才使陣列的長度發生變化。
由上面的介紹可以看到,length屬性是如此的神奇,利用它可以方便的增加或者減少陣列的容量。因此對length屬性的深入瞭解,有助於在開發過程中靈活運用。
附留言:
supNate:沒有具體例子,竊以為了解了length屬性,就理解了javascript中的陣列。而陣列是完成很多例子的基礎。因為和其他語言區別比較大,所以單獨講一下。例如實現低版本瀏覽器不支援的陣列的pop方法:
Array.prototype.pop=function(){
if(0==this.length)return;
var temp=this[this.length-1];
this.length--;
return temp;
}
這樣陣列就能作為棧使用了。
相關文章
- JavaScript 陣列 length 屬性JavaScript陣列
- JavaScript select length 屬性JavaScript
- JavaScript 字串 length屬性JavaScript字串
- JavaScript 函式 length 屬性JavaScript函式
- JavaScript中對陣列和陣列API的認識JavaScript陣列API
- 陣列物件按物件某個屬性排序陣列物件排序
- 關於 JS 陣列,物件 length 使用的坑JS陣列物件
- 合併陣列物件中相同的屬性值陣列物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- 理解 JavaScript 物件的屬性JavaScript物件
- CSSStyleDeclaration length 屬性CSS
- FileList length 屬性
- Js陣列物件的屬性值升序排序,並指定陣列中的某個物件移動到陣列的最前面JS陣列物件排序
- NumPy 陣列屬性陣列
- JavaScript ----- 操作DOM物件的屬性JavaScript物件
- 陣列物件根據物件中指定的屬性去重?你知道多少陣列物件
- Javascript中的陣列物件排序JavaScript陣列物件排序
- python中的屬性認識Python
- JavaScript物件屬性是有序的嗎?JavaScript物件
- JavaScript 之 物件/JSON/陣列JavaScript物件JSON陣列
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- mysql json陣列內物件屬性 多個值搜尋MySqlJSON陣列物件
- 認識 Go 語言中的陣列Go陣列
- JavaScript訪問物件的屬性和方法JavaScript物件
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- JavaScript刪除和清空物件屬性JavaScript物件
- JavaScript遍歷物件屬性順序JavaScript物件
- JavaScript學習四(object物件,陣列,)JavaScriptObject物件陣列
- Lesson4——NumPy 陣列屬性陣列
- 從JavaScript中的類陣列物件說起JavaScript陣列物件
- 知識點:可變陣列的屬性使用copy修飾的後果陣列
- 關於JS陣列中相同物件屬性值歸類方法的一點思考JS陣列物件
- JavaScript內建物件屬性及方法大全JavaScript物件
- js二維陣列新認識JS陣列
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- JavaScript 深入之類陣列物件與 argumentsJavaScript陣列物件
- 處理陣列中某一屬性陣列
- 重新認識flex縮寫屬性—[flex]Flex
- Javascript - 陣列和陣列的方法JavaScript陣列