阵列(arrays)的运用是程序设计中一项种要的技术。每一种程序语言均以某种特定方式来表示阵列。或许您已了解阵列在程序设计中的好处,但翻遍Netscape所提供的文件,并没有提及如何使用阵列。这是因为JavaScript并不支持阵列。但是现在我将教您如何在JavaScript中使用阵列。首先,阵列是干什么用的?您可以把它看成一长串的变量(variables)。假设您现在需要申明10个变量,您可以一个个将10个变量申明为
a, b, c ...,但当您需要100个或更多的变量时,这种方法将会变得很麻烦。若您使用一个拥有10个元素(elements)的阵列(暂且命名为‘MyArray’)来表示这10个变量,则可以用MyArray[1],MyArray[2],MyArray[3]...分别代表第一,二,三....个变量(很多程序语言是从0开始当作第一个元素,但在JavaScript语法中是从1开始)。因此若您想将第一个元素(或称变量)的值指定为17,您只要写成MyArray[1]=17即可。由此可看出阵列的功用和一般变量是相同的。
不光如此,若您想将所有元素的值均指定为17,您只要写一个简单的循环(loop)即可:
for (var i=1;i<11;i++)
MyArray[i]="17</i">
for-
这个指令是告诉电脑其后的指令总共要执行几次。for-循环是从1开
始,也就是电脑会先执行MyArray[1]=17。然后i会增加1并接着执行MyArray[2]
=17。
i每次递增1直到 i=10为止。
接下来教您如何做阵列的初始化(initialization)。
function initArray() {
this.length = initArray.arguments.length
for (var i = 0; i <this.length; i++) this[i+1]=
"initArray.arguments[i]" }
您不需要了解这个函数的意义,您只要知道怎么用就好。如果您要申明一
个拥有三个元素的阵列,且其值分别指定为17,18,19,您只要写成:
var MyArray= new initArray(17,18,19)。您也可以用字符串当作元素的值:
var heyho= new
initArray("This","is","酷")。因此您不必管元素值的类
型,即使混着用也行:var Mixedup=
newinitArray(17,"yo",103)。
下面我将对一个阵列'Mixedup'作初始化,并显示阵列的内容:
Element No. 1: 17
Element No. 2: yo
Element No. 3: 103
其原代码如下:
var Mixedup= new initArray(17,"yo",103);
document.write("Element No. 1: "+Mixedup[1]+"<br>");
document.write("Element No. 2: "+Mixedup[2]+"<br>");
document.write("Element No. 3: "+Mixedup[3]+"<br>");
当我昨天写一个小游戏时,我遇到一个您也可能会碰到的问题。当您想
清除窗口或frame中的内容时,Netscape文件中提到了一个函数可用“document
.clear()”。但当您将此函数写入网页中,它并不会如预期的清除窗口或frame
中的内容。而且document.clear()在各种平台(platform)上似乎都无效。
Gordon McComb告诉我一个清除窗口或frame中内容的好方法,您可以试试:
document.close();
document.open();
document.write(" ");
您不一定要写最后一行document.write("
");,只有当您想在窗口中写入某些
东西时才需要加入此行。上述方法对frame亦有效。
接下来我们谈一个可以让您在不同文件之间穿梭的语法back()和forward()
两个函数。通常我们在网页中加的back- link和Netscape中的“Back键”功能
上并不相同。Netscape- Navigator中的“Back键”是回到您history
list中
的上一页。您现在也可利用JavaScript做到相同的功能。
JavaScript语法的原代码如下:
<form NAME="buttonbar">
<pre>
<input TYPE="button" VALUE="Back" onClick="history.back()">
<input TYPE="button" VALUE="Next"
onCLick="history.forward()">
</pre>
</form>
您也可以用history.go(-1)和history.go(1)代替.
|