久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

JavaScript的函數(shù)和數(shù)組

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(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);