版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JavaScript數(shù)組JavaScript中的Array對象就是數(shù)組,首先是一個動態(tài)數(shù)組,無需預(yù)先制定大小,而且是一個像Java中數(shù)組、ArrayList、Hashtable等的超強綜合體。一、數(shù)組的聲明常規(guī)方式聲明:1、var arrName = new Array();/創(chuàng)建一個數(shù)組2、var arrName = new Array(size);/創(chuàng)建一個數(shù)組并指定長度,注意不是上限,是長度3、var arrName =new Array("孤傲蒼狼","白虎神皇","滅世魔尊");/創(chuàng)建一個數(shù)組,并初始化數(shù)組的內(nèi)容注意:雖然v
2、ar arrName = new Array(size);指定了長度,但實際上所有情況下數(shù)組都是變長的,也就是說即使指定了長度為2,仍然可以將元素存儲在規(guī)定長度以外的,注意:這時長度會隨之改變。Array的簡化聲明1、普通數(shù)組初始化:var arr = 3, 5, 6, 8, 9;范例1:復(fù)制代碼 1 <script type="text/javascript"> 2 /JavaScript聲明數(shù)組的四種方式 3 var arr1 = new Array();/創(chuàng)建一個空數(shù)組 4 arr10="xdp" 5 arr11="gacl&
3、quot; 6 var arr2 = new Array(2);/創(chuàng)建一個數(shù)組并指定長度為2 7 arr2"name0"="xdp"/arr2第一個元素 8 arr2"name1"="gacl"/arr2第二個元素 9 arr2"name2"="xtxd"/arr2第三個元素,arr2雖然在聲明時指明了長度為2,但是還是可以添加超過其指明長度的元素10 var arr3 = new Array("孤傲蒼狼","白虎神皇","滅
4、世魔尊");/創(chuàng)建一個數(shù)組并初始化數(shù)組中的元素11 var arr4 = 1,true,"String"/Array的簡化聲明12 13 document.write("遍歷arr1中的元素:<br/>");14 for(var i in arr1) 15 document.write(arr1i+"<br/>");16 17 document.write("-<br/>");18 document.write("遍歷arr2中的元素:<br/>&
5、quot;);19 for(var i in arr2) 20 document.write("arr2""+i+""="+arr2i+"<br/>");21 22 document.write("-<br/>");23 document.write("遍歷arr3中的元素:<br/>");24 for(var i in arr3) 25 document.write(arr3i+"<br/>");26 27
6、 document.write("-<br/>");28 document.write("遍歷arr4中的元素:<br/>");29 for(var i in arr4) 30 document.write(arr4i+"<br/>");31 32 </script>復(fù)制代碼運行結(jié)果:范例2:復(fù)制代碼 1 <script type="text/javascript"> 2 var names = new Array();/普通方式聲明數(shù)組,不需要指明數(shù)組的
7、長度 3 names0 = "孤傲蒼狼" 4 names1 = "白虎神皇" 5 names2 = "滅世魔尊" 6 for (var i = 0; i < names.length; i+) 7 document.write("names"+i+" = "+namesi); 8 document.write("<br/>"); 9 10 11 var pinyins = new Array();12 pinyins"人" = "
8、;ren"13 pinyins"口" = "kou"14 pinyins"手" = "shou"15 document.write("pinyins"人" = "+pinyins"人");16 document.write("<br/>");17 document.write("pinyins.手 = "+pinyins.手);/像Hashtable、Dictionary那樣用,而且像它們一樣效
9、率高。18 document.write("<br/>");19 /Array的簡化聲明20 var arr1 = 3, 5;/普通數(shù)組初始化21 for (var i = 0; i < arr1.length; i+) 22 document.write("arr1"+i+" = "+arr1i);23 document.write("<br/>");24 25 </script>復(fù)制代碼運行結(jié)果:二、數(shù)組練習(xí)Ferris寫過一個數(shù)組的案例,以下就是他的案例代碼,挺全的,
10、思路也挺好!復(fù)制代碼 1 <!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns=" 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 <title>數(shù)組練習(xí):各種數(shù)組方法的使用</
11、title> 5 <style> 6 divcolor:green;padding:10px 15px;margin:12px 0;background:#f0f0f0;border:1px dotted #333;font:12px/1.5 Courier New;word-wrap:break-word; 7 </style> 8 <script type="text/javascript"> 9 window.onload = function () 10 11 var aDiv = document.getElementsB
12、yTagName("div"); 12 var aInput = document.getElementsByTagName("input"); 13 var i = 0; 14 var bS1 = bS2 = true; 15 var aTmp = ; 16 17 /刪除/添加第一項 18 aInput0.onclick = function () 19 20 aTmp = getArray(aDiv0.innerHTML); 21 bS1 ? 22 /刪除第一項, shift()方法 23 (aTmp.shift(), this.value = th
13、is.value.replace("刪除","添加"), bS1 = false) : 24 /添加第一項, unshift()方法 25 (aTmp.unshift("January(1)"), this.value = this.value.replace("添加","刪除"), bS1 = true); 26 /輸出 27 aDiv0.innerHTML = aTmp.join() 28 ; 29 30 31 /刪除/添加最后一項 32 aInput1.onclick = function
14、 () 33 34 aTmp = getArray(aDiv0.innerHTML); 35 bS2 ? 36 /刪除最后一項, pop()方法 37 (aTmp.pop(), this.value = this.value.replace("刪除","添加"), bS2 = false) : 38 /添加最后一項, push()方法 39 (aTmp.push("December(12)"), this.value = this.value.replace("添加","刪除"), bS2 =
15、true); 40 /輸出 41 aDiv0.innerHTML = aTmp.join() 42 ; 43 44 45 /復(fù)制, concat()方法 46 aInput2.onclick = function () 47 48 aTmp = getArray(aDiv1.innerHTML); 49 /輸出 50 aDiv1.innerHTML = aTmp.concat(aTmp).toString().replace(/s/g,"") 51 ; 52 53 54 /還原, 利用數(shù)組的 length 特點 55 aInput3.onclick = function (
16、) 56 57 aTmp = getArray(aDiv1.innerHTML); 58 /設(shè)置數(shù)組長度 59 aTmp.length = 10; 60 /輸出 61 aDiv1.innerHTML = aTmp.join() 62 ; 63 64 65 /第三組數(shù)據(jù)還原 66 aInput4.onclick = function () 67 68 aTmp = "red","green","blue","white","yellow","black","brown
17、" 69 /輸出 70 aDiv2.innerHTML = aTmp.join() 71 ; 72 73 74 /刪除前三項 75 aInput5.onclick = function () 76 77 aTmp = getArray(aDiv2.innerHTML); 78 /刪除, 0開始, 刪除3個 79 aTmp.splice(0, 3); 80 /輸出 81 aDiv2.innerHTML = aTmp.join() 82 ; 83 84 85 /刪除第二至三項 86 aInput6.onclick = function () 87 88 aTmp = getArray(a
18、Div2.innerHTML); 89 /刪除, 2開始, 刪除2個 90 aTmp.splice(1, 2); 91 /輸出 92 aDiv2.innerHTML = aTmp.join() 93 ; 94 95 96 /在第二頂后插入"orange", "purple" 97 aInput7.onclick = function () 98 99 aTmp = getArray(aDiv2.innerHTML);100 /插入, 2開始, 插入"orange", "purple"101 aTmp.splice(
19、1, 0, "orange", "purple"); 102 /輸出103 aDiv2.innerHTML = aTmp.join()104 ;105 106 107 /替換第二項和第三項108 aInput8.onclick = function ()109 110 aTmp = getArray(aDiv2.innerHTML);111 /插入, 2開始替換112 aTmp.splice(1, 2, "#009900", "#0000ff"); 113 /輸出114 aDiv2.innerHTML = aTmp
20、.join()115 ;116 117 /將div中的內(nèi)容轉(zhuǎn)為數(shù)組118 /str div對象119 function getArray(str)120 121 aTmp.length = 0;122 str = str.split(",");123 for (var i in str)aTmp.push(stri);124 return aTmp125 126 127 </script>128 </head>129 <body>130 <div>January(1),February(2),March(3),April(4)
21、,May(5),June(6),July(7),Aguest(8),September(9),October(10),November(11),December(12)</div>131 <input value="刪除January(1)" type="button">132 <input value="刪除December(12)" type="button">133 <div>0,1,2,3,4,5,6,7,8,9</div>134 <inpu
22、t value="復(fù)制" type="button">135 <input value="還原" type="button">136 <div>red,green,blue,white,yellow,black,brown</div>137 <input value="還原" type="button">138 <input value="刪除前三項" type="button"
23、;>139 <input value="刪除第二至三項" type="button">140 <input value="在第二項后插入(orange, purple)" type="button">141 <input value="替換第二項和第三項" type="button">142 143 144 </body></html>JavaScript函數(shù)(function)一、函數(shù)基本概念為完成某一功能的
24、程序指令(語句)的集合,稱為函數(shù)。二、JavaScript函數(shù)的分類1、自定義函數(shù)(我們自己編寫的函數(shù)),如:function funName()2、系統(tǒng)函數(shù)(JavaScript自帶的函數(shù)),如alert函數(shù)。三、函數(shù)的調(diào)用方式1、普通調(diào)用:functionName(實際參數(shù).)2、通過指向函數(shù)的變量去調(diào)用:var myVar=函數(shù)名;myVar(實際參數(shù).);四、函數(shù)返回值1.當(dāng)函數(shù)無明確返回值時,返回的值就是"undefined"。2.當(dāng)函數(shù)有返回值時,返回值是什么就返回什么。函數(shù)測試代碼:復(fù)制代碼 1 <script type="text/javas
25、cript"> 2 var str="window.alert('孤傲蒼狼');" 3 eval(str);/eval() 函數(shù)可計算某個字符串,并執(zhí)行其中的的 JavaScript 代碼。 4 /*自定義函數(shù)*/ 5 function test(str) 6 alert(str); 7 8 window.alert(test);/輸出test函數(shù)的定義 9 /函數(shù)的調(diào)用方式110 test("孤傲蒼狼");11 /函數(shù)的調(diào)用方式212 var myFunction=test;13 myFunction("白虎神
26、皇");14 window.alert(myFunction);15 /*當(dāng)函數(shù)無明確返回值時,返回的也是值 "undefined"*/16 var retVal=test("test");/test函數(shù)執(zhí)行完之后,并沒有返回值,因此retVal變量接收到的返回值結(jié)果是undefined17 alert("retVal="+retVal);/輸出undefined18 </script>復(fù)制代碼 五、函數(shù)的深入使用5.1、可變參數(shù)函數(shù)的參數(shù)列表可以是任意多個,并且數(shù)據(jù)類型可以是任意的類型,JavaScript的函
27、數(shù)天然支持可變參數(shù),JavaScript有一個arguments變量可以訪問所有傳到函數(shù)內(nèi)部的參數(shù)。范例:JavaScript使用arguments創(chuàng)建參數(shù)可變的函數(shù)復(fù)制代碼 1 <script type="text/javascript"> 2 /*add函數(shù)是一個參數(shù)可變的函數(shù)*/ 3 function add() 4 var result=0; 5 for(var i=0;i<arguments.length;i+) 6 /alert(argumentsi); 7 result+=argumentsi; 8 9 10 return result;11
28、 12 alert("add(1,2,3)="+add(1,2,3);/調(diào)用add函數(shù)時傳入3個參數(shù)13 alert("add(1,2,3,4,5,6)="+add(1,2,3,4,5,6);/調(diào)用add函數(shù)時傳入6個參數(shù)14 alert("add()="+add();/調(diào)用add函數(shù)時不傳入?yún)?shù)15 alert("add(1,"HelloWorld")="+add(1,"HelloWorld");/調(diào)用add函數(shù)時傳入不同類型的參數(shù)16 </script>復(fù)制代
29、碼運行結(jié)果:5.2、javascript創(chuàng)建動態(tài)函數(shù)JavaScript支持創(chuàng)建動態(tài)函數(shù),動態(tài)函數(shù)必須用Function對象來定義(Function是javascript中的一個對象,是固定不變的,規(guī)定Function對象的"F"必須大寫,當(dāng)是function的時候,我們知道是定義函數(shù)的時候所使用的一個關(guān)鍵字:function funName(x,y),當(dāng)是Function的時候(F大寫的時候),我們知道是javascript中的對象)創(chuàng)建動態(tài)函數(shù)的基本格式:var 變量名 = new Function("參數(shù)1","參數(shù)2",&qu
30、ot;參數(shù)n","執(zhí)行語句");使用new關(guān)鍵字(new是javascript中一個關(guān)鍵字,也是固定的,我們在定義動態(tài)函數(shù)的時候必須要使用new來創(chuàng)建這個Function對象)我們先定義一個變量: var 變量名,在這里,變量名是隨便的,然后我們再使用new關(guān)鍵字創(chuàng)建一個Function對象,然后再把這個對象賦值給這個任意的變量,也就是:var 變量名 = new Function("參數(shù)1","參數(shù)2","參數(shù)n","執(zhí)行語句");Function后面的括號里先是傳遞給函數(shù)的參數(shù),然
31、后用一個逗號(,)隔開然后是這個函數(shù)要執(zhí)行的功能的代碼看下面的一段代碼:1 <script type="text/javascript">2 var square = new Function ("x","y","var sum ; sum = x+y;return sum;");3 alert("square(2,3)的結(jié)果是:"+square(2,3);4 </script>square是動態(tài)創(chuàng)建的函數(shù),在Function對象后面的括號里的每一部分內(nèi)容都必須是字符串形
32、式的,也就是說都必須用引號(""或者是'')括起來,第一部分是傳遞給這個動態(tài)函數(shù)的第一個參數(shù)“x”,第二部分是傳遞給這個動態(tài)函數(shù)的第二個參數(shù)“y“,第三部分是這個函數(shù)要完成的功能的代碼,這個函數(shù)要完成的功能是定義一個變量sum,讓sum等于傳遞給這個函數(shù)的兩個參數(shù)x和y的和,然后返回他們相加以后的值(return sum),調(diào)用后運行結(jié)果如下:這段代碼:1 var square = new Function ("x","y","var sum ; sum = x+y;return sum;");和下
33、面這段代碼:1 function square (x,y)2 var sum;3 sum = x+y;4 return sum;5 是一摸一樣的,只不過一個是動態(tài)函數(shù),一個是靜態(tài)函數(shù)。那下面我們就來想一下,為什么要用動態(tài)函數(shù)呢,動態(tài)函數(shù)有什么特殊的地方有什么優(yōu)點呢?在靜態(tài)函數(shù)里是:1 function square (x,y)2 var sum;3 sum = x+y;4 return sum;5 而在動態(tài)函數(shù)里是:1 new Function ("x","y","var sum ; sum = x+y;return sum;");我
34、們可以看到,每一個句子兩邊都加上了引號"x"還有"y"還有"var sum ; sum = x+y; return sum;"這些兩邊都加上了引號,也就是說在new Function后面的小括號里面的每一個語句兩邊都是有引號的,也就是說他們都是以字符串的形式表示和被調(diào)用的,而字符串又是可以由變量來定義或者是改變的,也就是說,我們可以定義變量,讓變量的值等于這些字符串: 1 <script type="text/javascript"> 2 var a = "var sum;" 3 v
35、ar b = "sum = x + y;" 4 var c = "return sum;" 5 var square = new Function ( "x", "y", a+b+c); 6 alert(square (2,3);7 </script>在這里,我們定義了變量a,b,c,我們讓a="var sum;",讓b="sum = x+y;",讓c = "return sum;"這樣:var square = new Function (&
36、quot;x","y","var sum ; sum = x+y;return sum;");我們就可以寫成:var square = new Function ( " x", "y",a+b+c);因為a,b,c是三個字符串,字符串相加得到的還是字符串。我們?yōu)槭裁匆汛a分成一小段一小段的代碼呢?,把一個字符串分成了若干個獨立的字符串的優(yōu)點就在于我們可以通過修改其中的某些字符串來隨時改變函數(shù)的作用。例如:復(fù)制代碼 1 <script type="text/javascript"> 2 var a = "var sum;" 3 var b = "sum = x + y;" 4 var c = "return sum;&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)員工借用設(shè)備使用期限合同3篇
- 2025年度定制家具行業(yè)競業(yè)禁止模板木方買賣合同3篇
- 2025年度農(nóng)村自建房合同協(xié)議書(含智能安防監(jiān)控)
- 養(yǎng)殖場土地租賃合同(二零二五年度)農(nóng)業(yè)科技創(chuàng)新3篇
- 二零二五年度個人施工安全責(zé)任協(xié)議書范本3篇
- 2025年度農(nóng)村自建房工程承包合同
- 2025年度全新官方版二零二五年度離婚協(xié)議書與房產(chǎn)分割執(zhí)行細則3篇
- 二零二五年度特色農(nóng)業(yè)農(nóng)田承包合作協(xié)議
- 2025年度出租車位充電樁安裝工程驗收及質(zhì)保合同
- 二零二五年度全新寫字樓轉(zhuǎn)租協(xié)議合同:商務(wù)樓租賃權(quán)轉(zhuǎn)讓專案2篇
- 《中國制造業(yè)的崛起》課件
- 中小學(xué)學(xué)校安全管理制度匯編
- DB21∕T 3240-2020 芹菜農(nóng)藥安全使用生產(chǎn)技術(shù)規(guī)程
- 2024年全國《考評員》專業(yè)技能鑒定考試題庫與答案
- 廣州滬教牛津版七年級英語上冊期中試卷(含答案)
- 2025版國家開放大學(xué)法律事務(wù)??啤睹穹▽W(xué)(1)》期末考試總題庫
- 幼兒心理健康的教育課件
- DB43T 1167-2016 高純(SiO ≥99.997%)石英砂 規(guī)范
- 《環(huán)境保護產(chǎn)品技術(shù)要求 工業(yè)廢氣吸附凈化裝置》HJT 386-2007
- 化工過程安全管理導(dǎo)則學(xué)習(xí)考試題及答案
- 銀行下半年對公業(yè)務(wù)工作計劃(13篇)
評論
0/150
提交評論