WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
JavaScript的函數(shù)和數(shù)組
導(dǎo)航: 上一頁(yè) | aJAX| XML | DreamWeaver | PhotoShop | Discuz | Asp | php | java | HTML | XHTML
函數(shù)[ ]
函數(shù)是可以重復(fù)使用的代碼塊,可以由一個(gè)事件執(zhí)行,或被調(diào)用執(zhí)行。一個(gè)函數(shù)中的代碼只有在事件觸發(fā)或函數(shù)被調(diào)用的時(shí)候才被執(zhí)行。你可以在頁(yè)面中的任何位置調(diào)用腳本(如果函數(shù)嵌入一個(gè)外部的 .js 文件,甚至可以從其他的頁(yè)面中調(diào)用)。函數(shù)一般定義在頁(yè)面開(kāi)始位置的<head> 部分中。
eg:
<html> <head> <script type="text/javascript"> function displaymessage() { alert("Hello World!") } </script> </head> <body> <form> <input type="button" value="Click me!" onclick="displaymessage()"> </form> </body> </html>
假如上面的例子中的 alert("Hello world!!") 沒(méi)有被寫(xiě)入函數(shù),那么當(dāng)頁(yè)面被載入時(shí)它就會(huì)執(zhí)行。現(xiàn)在,當(dāng)用戶擊中按鈕時(shí),腳本才會(huì)執(zhí)行。我們給按鈕添加了onClick 事件,這樣按鈕被點(diǎn)擊時(shí)函數(shù)才會(huì)執(zhí)行。
創(chuàng)建函數(shù)的語(yǔ)法:
function 函數(shù)名(var1,var2,...,varX) 若無(wú)var1,var2,...,varX也可以,表示無(wú)參數(shù)函數(shù)。 { 代碼... } 或 var a = function () {代碼...}
數(shù)組[ ]
數(shù)組就是某類數(shù)據(jù)的集合,數(shù)據(jù)類型可以是整型、字符串、甚至是對(duì)象Javascript不支持多維數(shù)組,但是因?yàn)閿?shù)組里面可以包含對(duì)象(數(shù)組也是一個(gè)對(duì)象).
定義數(shù)組 定義數(shù)組要使用關(guān)鍵字new。
eg:var myArray=new Array()
向數(shù)組內(nèi)賦值有2種方法:
- 先定義再賦值。
var mycars=new Array() mycars[0]=“buick” mycars[1]=”Volvo” mycars[2]=”BMW”
上面的定義中沒(méi)有定義數(shù)組的大小,你可以向數(shù)組中添加任意多個(gè)值。你也可以在定義數(shù)組對(duì)象時(shí)寫(xiě)入一個(gè)整型參數(shù)來(lái)控制數(shù)組的大小.
eg:
var mycars=new Array(3) mycars[0]="buick” mycars[1]=”Volvo” mycars[2]=”BMW”
- 定義的同時(shí)填值:
eg: var mycars=new Array(”buick”,”Volvo”,”BMW”) 或var mycars=[”buick”,”Volvo”,”BMW”]
訪問(wèn)數(shù)組
你可以通過(guò)使用數(shù)組的名稱后面加索引號(hào)來(lái)指向數(shù)組中某一元素。索引號(hào)從零開(kāi)始。
eg: document.write(mycars[0]) 將輸出:buick
修改數(shù)組內(nèi)的值
要修改數(shù)組中現(xiàn)有的值只需要將新值寫(xiě)入數(shù)組指定位置即可。
eg:將0號(hào)索引的值改為:Opel。 寫(xiě)法為:mycars[0]=”O(jiān)pel” document.write(mycars[0])
Array literals
數(shù)組其實(shí)是特殊的對(duì)象,對(duì)象有特有屬性和方法,通過(guò) 對(duì)象名.屬性 、對(duì)象.方法() 來(lái)取值和調(diào)用,而數(shù)組是通過(guò)下標(biāo)來(lái)取值,Array Literals跟數(shù)組有很多相似,都是某數(shù)據(jù)類型的集合,但是Array Literals從根本來(lái)說(shuō),是個(gè)對(duì)象,但聲明和調(diào)用,跟數(shù)組是有區(qū)別。
var aa=new Object(); aa.x="cat"; aa.y="sunny"; alert(aa.x);//彈出cat
創(chuàng)建一個(gè)簡(jiǎn)單的對(duì)象,一般調(diào)用是通過(guò)aa.x,而如果當(dāng)成Array literals的話,用alert(aa[“x”])一樣會(huì)彈出cat
var a = {x:"cat", y:"sunny"}; alert(a["y"]); //彈出sunny
這是另一種創(chuàng)建對(duì)象的方法,結(jié)果是一樣的.
數(shù)組的循環(huán)
var a=[1,2,3,4,5,6]; for(i=0;i<a.length;i++) { alert(a[i]); }
這是最常用的遍歷數(shù)組,代碼依次彈出1至6.
還有一宗方法為:
var a=[1,2,3,4,5,6]; for(var e in a) { alert(e)}
還是依次彈出1至6,for…in是歷遍對(duì)象(數(shù)組是特殊的對(duì)象)對(duì)象,用在數(shù)組上,因?yàn)閿?shù)組沒(méi)有屬性名,所以直接輸出值,
數(shù)組的操作方法
先概覽下下面的這些操作數(shù)組常用的方法:toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(),pop(),push(),shift(),unshift(),sort(),splice()
- toString(),valueOf(),toLocalString():
功能:返回?cái)?shù)組的全部元素
注:數(shù)組名也可以返回整個(gè)數(shù)組
eg:
var m=["am","bm","cm"];//用括號(hào)聲明一個(gè)數(shù)組對(duì)象
alert(m.toString());//toString()返回?cái)?shù)組對(duì)象的所有內(nèi)容,用逗號(hào)分割,即am,bm,cm
alert(m.valueOf());//valueOf()也返回?cái)?shù)組對(duì)象的所有內(nèi)容
alert(m.toLocaleString());//toLocaleString()也返回?cái)?shù)組對(duì)象的所有內(nèi)容,但有地區(qū)語(yǔ)言區(qū)別,暫不研究
alert(m);//數(shù)組名也返回?cái)?shù)組對(duì)象的所有內(nèi)容
- join():
功能:把數(shù)組各個(gè)項(xiàng)用某個(gè)字符(串)連接起來(lái),但并不修改原來(lái)的數(shù)組
eg:
var m=["am","bm","cm"];//用括號(hào)聲明一個(gè)數(shù)組對(duì)象
var n=m.join("---");//用---連接am,bm,cm.
alert(m.toString());//m并沒(méi)有被修改,返回am,bm,cm
alert(n);//n是一個(gè)字符串,為am---bm---cm
- split():
功能:把一個(gè)字符串按某個(gè)字符(串)分割成一個(gè)數(shù)組,但不修改原字符串
eg:
var str="I love maomao,I am caolvchong";
var arr=str.split("o");//按字符o把str字符串分割成一個(gè)數(shù)組
alert(arr);//輸出整個(gè)數(shù)組
- slice():
功能:返回某個(gè)位置開(kāi)始(到某個(gè)位置結(jié)束)的數(shù)組部分,不修改原數(shù)組
eg:
var m=["am","bm","cm","dm","em","fm"];
var n=m.slice(2);//返回第二個(gè)元素bm后面的元素,即cm,dm,em,fm
var q=m.slice(2,5);//返回第二個(gè)元素后到第五個(gè)元素,即cm,dm,em
alert(n);
alert(q);
數(shù)組對(duì)象的棧操作:
- push():數(shù)組末尾添加一個(gè)項(xiàng)
- pop():刪除數(shù)組最后一個(gè)項(xiàng)
eg:
var m=["am","bm","cm","dm","em","fm"];
m.push("gm");//在數(shù)組末尾添加元素gm
alert(m);
m.pop();//刪除數(shù)組最后一個(gè)元素gm
alert(m);
數(shù)組對(duì)象的隊(duì)列操作:
- unshift():數(shù)組頭添加一個(gè)項(xiàng)
- shift():刪除數(shù)組第一個(gè)項(xiàng)
代碼:
var m=["am","bm","cm","dm","em","fm"];
m.unshift("gm");//在數(shù)組第一個(gè)元素位置添加元素gm
alert(m);
m.shift();//刪除數(shù)組第一個(gè)元素gm
alert(m);
- sort():數(shù)組按字符的ASCII碼進(jìn)行排序,修改數(shù)組對(duì)象
注:即便是數(shù)字?jǐn)?shù)組,也將轉(zhuǎn)化為字符串來(lái)進(jìn)行比較排序
eg:
var m=["am","fm","gm","bm","em","dm"];
m.sort();//按字母序排序
alert(m);
- concat():在數(shù)組尾添加元素,但不修改數(shù)組對(duì)象
代碼:
var m=["am","bm"]
var n=m.concat("cm");//添加一項(xiàng)cm,并且賦予新數(shù)組對(duì)象
alert(m);//原數(shù)組沒(méi)有被修改
alert(n);//輸出新數(shù)組對(duì)象
- splice():在數(shù)組的任意位置進(jìn)行添加,刪除或者替換元素,直接修改數(shù)組對(duì)象
細(xì)節(jié):
splice()有三個(gè)參數(shù)或三個(gè)以上參數(shù),前兩個(gè)是必須的,后面參數(shù)是可選的
進(jìn)行添加:splice(起始項(xiàng),0,添加項(xiàng))
進(jìn)行刪除:splice(起始項(xiàng),要?jiǎng)h除的項(xiàng)個(gè)數(shù))
進(jìn)行替換:splice(起始項(xiàng),替換個(gè)數(shù),替換項(xiàng)) 這個(gè)其實(shí)是添加刪除的共同結(jié)果
eg:
var m=["am","bm"]
m.splice(1,0,"fm","sm");//在第一項(xiàng)后面添加fm和sm,返回am,fm,sm,bm
alert(m);
m.splice(2,1);//刪除第二項(xiàng)后面一項(xiàng)(即第三項(xiàng)sm,返回am,fm,bm)
alert(m);
m.splice(2,1,"mm");//替換第二項(xiàng)后面一項(xiàng)(即第三項(xiàng),返回am,fm,mm)
alert(m);