JavaScript学习 第 五 章

原创 2004年08月20日 15:52:00


第 五 集




阵 列(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
for- 这 个 指 令 是 告 诉 电 脑 其 後 的 指 令 总 共 要 执 行 几 次。for-   圈 是 从1开 使, 也 就 是 电 脑 会 先 执 行MyArray[1]=17。 然 後 i 会 增 加1并 接 着 执 行MyArray[2]=17。 i 每 次 递 增1直 到 i=10为 止。

接 下 来 教 您 如 何 做 阵 列 的 初 始 化(initialization)。 这 个 问 题 曾 在 JavaScript Mailing list中 讨 论 过。 (如 果 您 想 订 阅 mailing list, 您 只 要 在e-mail中 填 入 subscribe javascript-digest 并 寄 到 majordomo @obscure.org 即 可。 接 着 您 每 天 就 会 收 到 一 到 二 个 约20-30kB的 大 档 案, 这 些 档 案 包 括 所 有 来 自 JavaScript- list的 信 件)。

function initArray() {
      this.length = initArray.arguments.length
      for (var i = 0; i < this.length; i++)
      this[i+1] = initArray.arguments[i]
   }

您 不 需 要 了 解 这 个 函 式(function)的 意 义, 您 只 要 知 道 怎 麽 用 就 好。 如 果 您 要 宣 告 一 个 拥 有 三 个 元 素 的 阵 列, 且 其 值 分 别 指 定 为 17,18,19, 您 只 要 写 成 : var MyArray= new initArray(17,18,19)。 您 也 可 以 用 字 串(strings)当 作 元 素 的 值 : var heyho= new initArray("This","is","酷")。 因 此 您 不 必 管 元 素 值 的 型 式(type), 即 使 混 着 用 也 行 : var Mixedup= new initArray(17,"yo",103)

下 面 我 将 对 一 个 阵 列 'Mixedup' 作 初 始 化, 并 显 示 阵 列 的 内 容 :

其 原 始 码 如 下:

<script language="JavaScript">
<!-- Hide
  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>");
// -->  
</script>


当 我 昨 天 写 一 个 小 游 戏 时, 我 遇 到 一 个 您 也 可 能 会 碰 到 的 问 题。 当 您 想 清 除 视 窗 或frame中 的 内 容 时,Netscape文 件 中 提 到 了 一 个 函 式 可 用-- 'document.clear()'。 但 当 您 将 此 函 式 写 入 网 页 中, 它 并 不 会 如 预 期 的 清 除 视 窗 或frame中 的 内 容。 而 且 document.clear()在 各 种 平 台(platform)上 似   都 无 效。Gordon McComb告 诉 我 一 个 清 除 视 窗 或frame中 内 容 的 好 方 法, 您 可 以 试 试 :

     document.close();
     document.open();
     document.write("<P>");

您 不 一 定 要 写 最 後 一 行 document.write("<P>");, 只 有 当 您 想 在 视 窗 中 写 入 某 些 东 西 时 才 需 要 加 入 此 行。 上 述 方 法 对frame亦 有 效。


接 下 来 我 们 谈 一 个 可 以 让 您 在 不 同 文 件 之 间 穿 梭 的 语 法-- back() 和 forward() 两 个 函 式。 通 常 我 们 在 网 页 中 加 的 back- link和 Netscape- Navigator中 的 "Back键" 功 能 上 并 不 相 同。Netscape- Navigator中 的 "Back键" 是 回 到 您history list中 的 上 一 页。 您 现 在 也 可 利 用JavaScript做 到 相 同 的 功 能。 只 要按 下 此 link , 您 可 以 再 度 回 到 此 页。JavaScript语 法 的 原 始 码 如 下 :

<html>
<body>
<FORM NAME="buttonbar">
     <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
     <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'">
     <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
</FORM>
</body>
</html>
您 也 可 以 用 history.go(-1)history.go(1) 代 替.

Javascript测试框架Jasmine(七):jqPaginator测试实例

zz from:http://keenwon.com/1225.html jqPaginator是我自己写的一个分页组件,已经用在了公司的两个项目上。这次学习Jasmine,首先想到...
  • fxismonk
  • fxismonk
  • 2017年11月10日 09:11
  • 100

Android编程权威指南(第二版)学习笔记(十六)—— 第16章 使用 intent 拍照

本章主要讲了如何使用 intent 拍照,存储照片和展示照片
  • kniost
  • kniost
  • 2017年01月12日 17:55
  • 393

JavaScript中常见排序算法详解

来自:wowphp,作者: 不是小羊的肖恩 链接:https://wowphp.com/post/komxdx8qe862.html 有句话怎么说来着: 雷锋推倒雷峰塔,Ja...
  • jian_xi
  • jian_xi
  • 2017年11月20日 00:09
  • 68

来来来,一起五句话搞定JavaScript作用域

原文出处:http://3060674.blog.51cto.com/3050674/1812390 JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScrip...
  • chelen_jak
  • chelen_jak
  • 2016年07月19日 11:11
  • 355

阿朴橡皮章教程——进阶版[套色]【转侵删】

个人比较喜欢做手工类的东西  所以转两篇橡皮章教程上来  原作者阿朴  用手机在《约绘》上扫描下来的 并非用作商业用途  如有侵权请告知  会马上删掉...
  • goblinlq
  • goblinlq
  • 2015年03月23日 23:54
  • 982

章文嵩:怎样做开源才有意义?

大家好,我是InfoQ的主持人,现在在架构师峰会现场。今天我们很高兴邀请到阿里云的技术负责人章文嵩博士来接受我们的采访。第一个问题是有关淘宝-阿里系的开源进程,我们从外面看起来似乎是有三个比较明显的阶...
  • robertsong2004
  • robertsong2004
  • 2014年08月20日 14:47
  • 1211

在2016年如何学习JavaScript?

在2016年如何学习JavaScript?原文链接 Want to learn JavaScript in 2016?作者:Vincent O译者:相信有不少人已经读过在 2016 年学 JavaSc...
  • xllily_11
  • xllily_11
  • 2016年11月04日 11:08
  • 3351

Tesseract学习(五)

前面讲的都是对于标准字的识别,但对于验证码或者手写字体识别率就会非常低。为了让Tesseract识别自己的语言,可以通过训练语言库的方式来解决。下面通过一个识别手写字体的例子来了解Tesseract提...
  • HELLO_THERE
  • HELLO_THERE
  • 2014年01月10日 22:55
  • 7688

Quartz.NET学习系列(四)--- 数据注入

Quartz.NET中任务是需要额外新建一个类继承IJob的,方法入参和出参都是已经规定好了的,这时要想传额外参数就得借助Quartz.NET的内置的对象IJobExecutionContext 通...
  • Eye_cng
  • Eye_cng
  • 2015年03月14日 19:43
  • 1767

一个治愈 JavaScript 疲劳的学习计划

网络埋伏纪事 · 2016-11-12翻译 5706阅读 原文链接  像其他人一样,我最近偶然看到 Jose Aguinaga 的文章《在 2016 年学 JavaScript ...
  • dj0379
  • dj0379
  • 2016年11月26日 12:42
  • 884
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript学习 第 五 章
举报原因:
原因补充:

(最多只允许输入30个字)