荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店