荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: hbo (H.B.), 信区: Java
标 题: (转贴)JavaScript 简介(第 5 集)
发信站: 深大荔园晨风站 (Thu Mar 12 09:42:05 1998), 转信
寄信人: VINCENT
标 题: (转贴)JavaScript 简介(第 5 集)
发信站: 华南理工大学 BBS木棉站
日 期: Tue Oct 15 19:07:12 1996
在程式设计的技巧中, 有一项很重要的,那便是阵列 (Array)
的使用。
几乎每一种程式语言都有提供某种程度的阵列使用。如果你的程度到
了某一阶段的话,阵列将会带给你许多的实质帮助。然而,我们翻一
翻 Netscape 所提供的文件之後会发现∶
面居然没有有关阵列的说明!
这个原因就是 JavaScript
本身并不提供阵列的功能!不过,以下我们会
告诉你如何在 JavaScript 中达成同样的功能。
首先,什么是阵列呢?阵列是一堆放在一起的变数之集合。假设有
10
个变数,名称分别为 a,b,c,... 样的命名法会很麻烦,如果有 100
个或更多的
变数时,那就相当复杂了。
所以,若我们设定一个阵列,名称为'MyArray'
包含了 10 个素的话,我们就可将这些元素称做 MyArray[1],
MyArray[2],
MyArray[3], ... (许多程式语言是由 0
开始计算第一个元素的,但我们这儿由
1 开始,以符合等会儿所要叙述的 JavaScript 语法)
所以,你若要存一个数字
17 於第一个元素中,你必须写成
MyArray[1]=17,也就是说,你可以将阵列元
素当成是一般变数使用,但却可以拥有更多特性;如∶若要将 17
这数字有
入阵列中的每一个元素的话,你可以写成以下的方式∶
for ( var i=1; i<11 ; i ) MyArray[i]=17
以上称为一个回圈指令,for
这个指令是告诉电脑下一个指令应被执行的
次数。在 for 回圈中, i 由 1 开始,首先,会执行 MyArray[1]=17
的指令,
接著,i 会被加 1 变成 2, 然後接著执行 MyArray[2]=17 这个指令,
然後
i 再被加 1,如此重复同样的动作至 i=10 (for 回圈中的 i<11
运算式必须是
成立的时候,回圈才会继续执行,当 i=11
时,这个条件就不再成立了 )。
现在我们将告诉你一个启始阵列的函数。这个函数是在
JavaScript 的
信件讨论区中所提到的。(如果你想订阅这份信件讨论的话可以送一份
内容为 subscribe javascript-digest 的 E-mail 至 majordemo@obscure.org
这个位
址即可,你将会每天收到 1 或 2 个约 20~30k
的档案,内容为包含了有关
javascript 这个讨论区内的相关信件 )。
function initArray() {
this.length = initArray.arguments.length
for (var i = 0; i < this.length; i )
this[i 1] = initArray.arguments[i]
}
你并不需要了解这个函数的意义,你只要会用大概就够了。如果
我们想建一个具 3 个元素值分别为 17, 18, 19 的阵列,可以写成
var MyArray= new initArray(17,18,19)。 这样 17, 18, 19 三个值将
分别被放置於阵列中的第 1, 2, 3 个位置中。 阵列中的值也可以是
字串,如∶var heyho= new initArray("This","is","cool"),甚至写成
var Mixedup= new initArray(17,"yo",103),这样将不同型态混合著
用,也不会有问题。
现在建立阵列 ' Mixedup' 并将其结果输出来看看。
项目 1: 17
项目 2: yo
项目 3: 103
以下是输出的语法∶
<script language="JavaScript">
<!-- Hide
var Mixedup= new initArray(17,"yo",103);
document.write("项目 1: " Mixedup[1] "<" "br" ">");
document.write("项目 2: " Mixedup[2] "<" "br" ">");
document.write("项目 3: " Mixedup[3] "<" "br" ">");
// -->
</script>
我们曾写了一个
game,其中碰到一个你也可能会遇上的问题。如果你想
要清除一个视窗或是视窗框中文件的时候;使用 Netscape 提供的
JavaScript
文件中所记载的 'document.clear()'
函数来做,似乎没什么效用,目前这个
document.clear() 的函数,在任何一个平台上好像都没有效,Gordon
McComb
告诉我们一个如下的语法来替代这个函数!
document.close();
document.open();
document.write("<" "P" ">");
你可以不用写 document.write("<" "p" ">");
这一行,这行是当你写了某些东西到
视窗上时,才必须注意用到的部份。这个语法用在视窗框时,效果一样!
最後,我们来看一个可以让你浏览不同文件的语法。我们这儿所要谈的
是 back() 和 forward()
这两个函数。如果你本身的文件中有一个连结是回
到你本身文件的上一个连结文件的话, 那和 Netscope
浏览器中所提供的
back
按钮功能是不一样的。例如∶在我的文件中;正常的连结连到某些
我们认为会是这个文件来源的地方, 称这个连结叫 back, 而
Netscape 浏
览器中的 back
按钮,则是回到你历史记录中的上一个连结,所以不同。
JavaScript 也能提供类似 Netscape 中 back 按钮的功能。 试试这个
连结,
你可以体会一下回来的感觉。这个语法如下所示∶
<html>
<body>
<FORM NAME="buttonbar">
<INPUT TYPE="button" VALUE="Back" onClick="history.back()">
<INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.htm'">
<INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
</FORM>
</body>
</html>
以上你也可以直接写成 history.go(-1) 与 history.go(1)。
第 5 集 完
--
※ 来源:.深大荔园晨风站 bbs.szu.edu.cn.[FROM: 202.192.140.143]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店