javascript數(shù)組詳解
如果你是一個(gè)有經(jīng)驗(yàn)的開發(fā)者,你可能會認(rèn)為這個(gè)問題比較簡單,但是有的時(shí)候,我們會感覺這個(gè)問題比較有趣。
首先我們來看看數(shù)組的定義:“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.”,下面我們用對象來描述數(shù)組的定義:
var arr = ["benjamin", "zuojj"];
//=>
var arr = {
"0": "benjamin",
"1": "zuojj"
};
看上面的例子,總感覺缺少了什么,OK,數(shù)組的長度:
var arr = {
"0" : "benjamin",
"1" : "zuojj",
"length" : 2
};
我們知道,在Javascript語言中,數(shù)組是一個(gè)特殊的對象,我們可以使用訪問數(shù)組的方式來訪問對象的屬性,同時(shí),數(shù)組也可以像對象那樣添加屬性。看下例:
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 = "www.dbjr.com.cn";
//Outputs: "www.dbjr.com.cn"
console.log(arr.url);
//Outputs: 2
console.log(arr.length);
下面我們來看看數(shù)組的方法,數(shù)組有很多可操作的方法,如indexOf/slice/splice/sort等,我們知道實(shí)際上這些方法存在于Array.prototype中??聪旅娴睦樱?/p>
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"));
事實(shí)上,我們可以使用對象重載所有的數(shù)組方法??聪旅娴膒ush方法的例子:
var arr = {
length: 0,
push: function(val) {
//賦值
this[this.length] = val;
//更新數(shù)組長度
this.length += 1;
//返回?cái)?shù)組長度
return this.length;
}
}
arr.push("zuojj");
arr.push("benjamin");
//Object {0: "zuojj", 1: "benjamin", length: 2, push: function}
console.log(arr);
但是有一個(gè)是不能從新實(shí)現(xiàn)的,數(shù)組的字面量定義:
但是我們可以使用構(gòu)造函數(shù)來代替:
如果不適用字面量定義數(shù)組,那么我們可以重定義數(shù)組的定義,以我們自己的方式。
現(xiàn)在你知道javascript中數(shù)組是如何工作的了吧,希望對大家有所幫助。
- Javascript的數(shù)組與字典用法與遍歷對象的屬性技巧
- JavaScript數(shù)組常用操作技巧匯總
- Javascript 數(shù)組排序詳解
- 一個(gè)JavaScript遞歸實(shí)現(xiàn)反轉(zhuǎn)數(shù)組字符串的實(shí)例
- JavaScript中實(shí)現(xiàn)最高效的數(shù)組亂序方法
- 原生JavaScript實(shí)現(xiàn)合并多個(gè)數(shù)組示例
- JavaScript中合并數(shù)組的N種方法
- javascript字典探測用戶名工具
- Javascript中this的用法詳解
- javascript常見用法總結(jié)
- Javascript數(shù)組與字典用法分析
相關(guān)文章
JavaScript中使用concat()方法拼接字符串的教程
這篇文章主要介紹了JavaScript中使用concat()方法拼接字符串的教程,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06JavaScript replace(rgExp,fn)正則替換的用法
再看jQuery源碼的時(shí)候遇到了replace中參數(shù)為函數(shù)的用法,正好復(fù)習(xí)一下replace正則替換的用法。2010-03-03javascript 學(xué)習(xí)筆記(一)DOM基本操作
主要是為了使自己更加熟練操作DOM,記錄自己的點(diǎn)滴,規(guī)范自己的代碼!希望大家共同進(jìn)步!2011-04-04javascript中var與let、const的區(qū)別詳解
這篇文章主要介紹了javascript中var與let、const的區(qū)別詳解,需要的朋友可以參考下2022-12-12JavaScript與DOM組合動態(tài)創(chuàng)建表格實(shí)例
這篇文章簡單介紹了DOM 1.0一些基本而強(qiáng)大的方法以及如何在JavaScript中使用它們;你可以學(xué)到如何動態(tài)地創(chuàng)建、獲取、控制和刪除HTML元素2012-12-12JavaScript中對DOM節(jié)點(diǎn)的訪問、創(chuàng)建、修改、刪除
這篇文章主要介紹了JavaScript中對DOM節(jié)點(diǎn)的訪問、創(chuàng)建、修改、刪除,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11