JavaScript 简介JavaScript 有什么特点JavaScript 使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。 Java 与 JavaScript 有什么不同很多人看到 Java 和 JavaScript 都有“Java”四个字,就以为它们是同一样东西,连我自己当初也是这样。其实它们是完完全全不同的两种东西。Java,全称应该是 Java Applet,是嵌在网页中,而又有自己独立的运行窗口的小程序。Java Applet 是预先编译好的,一个 Applet 文件(.class)用 Notepad 打开阅读,根本不能理解。Java Applet 的功能很强大,可以访问 http、ftp等协议,甚至可以在电脑上种病毒(已有先例了)。相比之下,JavaScript 的能力就比较小了。JavaScript 是一种“脚本”(“Script”),它直接把代码写到 HTML 文档中,浏览器读取它们的时候才进行编译、执行,所以能查看 HTML 源文件就能查看JavaScript 源代码。JavaScript 没有独立的运行窗口,浏览器当前窗口就是它的运行窗口。它们的相同点,我想只有同是以 Java 作编程语言一点了。 开发 JavaScript 该用什么软件一个 JavaScript 程序其实是一个文档,一个文本文件。它是嵌入到 HTML 文档中的。所以,任何可以编写 HTML 文档的软件都可以用来开发 JavaScript。在此我推荐大家用 FrontPage 2000 附带的 Microsoft 脚本编辑器(在 FrontPage 菜单 | 工具 | 宏 | Microsoft 脚本编辑器)。它是个像 Visual Basic / C++ 一样的程序开发器,能对正在输入的语句作出简要提示。配合 FrontPage 2000,使工作量大大减少。 JavaScript 语言的基础在什么地方插入 JavaScriptJavaScript 可以出现在 HTML 的任意地方。使用标记<script>…</script>,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在<HTML>之前插入也不成问题。不过如果要在声明框架的网页(框架网页)中插入,就一定要在<frameset>之前插入,否则不会运行。 基本格式
第二行和第四行的作用,是让不懂<script>标记的浏览器忽略 JavaScript 代码。一般可以省略,因为现在想找不懂 Script 的浏览器,恐怕就连博物馆里也没有了。第四行前边的双反斜杠“//”是 JavaScript 里的注释标号,以后将学到。 另外一种插入 JavaScript 的方法,是把 JavaScript 代码写到另一个文件当中(此文件通常应该用“.js”作扩展名),然后用格式为“<script src="javascript.js"></script>”的标记把它嵌入到文档中。注意,一定要用“</script>”标记。 参考 <script>标记还有一个属性:language(缩写lang),说明脚本使用的语言。对于 JavaScript,请用“language="JavaScript"”。 参考 相对于<script>标记,还有一个<server>标记。<server>标记所包含的,是服务器端(Server Side)的脚本。本教程只讨论客户器端(Client Side)的 JavaScript,也就是用<script>标记包含的脚本。 如果想在浏览器的“地址”栏中执行 JavaScript 语句,用这样的格式:
这样的格式也可以用在连接中:
JavaScript 基本语法每一句 JavaScript 都有类似于以下的格式:
其中分号“;”是 JavaScript 语言作为一个语句结束的标识符。虽然现在很多浏览器都允许用回车充当结束符号,培养用分号作结束的习惯仍然是很好的。 语句块 语句块是用大括号“{ }”括起来的一个或 n 个语句。在大括号里边是几个语句,但是在大括号外边,语句块是被当作一个语句的。语句块是可以嵌套的,也就是说,一个语句块里边可以再包含一个或多个语句块。 JavaScript 中的变量什么是变量 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器。所储存的值,可以是数字、字符或其他的一些东西。 变量的命名 变量的命名有以下要求:
而且,变量是区分大小写的,例如,variable 和 Variable 是两个不同的变量。不仅如此,大部分命令和“对象”(请参阅“对象化编程”章)都是区分大小写的。 提示 给变量命名,最好避免用单个字母“a”“b”“c”等,而改用能清楚表达该变量在程序中的作用的词语。这样,不仅别人能更容易的了解你的程序,而且你在以后要修改程序的时候,也很快会记得该变量的作用。变量名一般用小写,如果是由多个单词组成的,那么第一个单词用小写,其他单词的第一个字母用大写。例如:myVariable 和 myAnotherVariable。这样做仅仅是为了美观和易读,因为 JavaScript 一些命令(以后将用更具体的方法阐述“命令”一词)都是用这种方法命名的:indexOf;charAt 等等。 变量需要声明 没有声明的变量不能使用,否则会出错:“未定义”。声明变量可以用: var <变量> [= <值>]; var 我们接触的第一个关键字(即保留字)。这个关键字用作声明变量。最简单的声明方法就是“var <变量>;”,这将为<变量>准备内存,给它赋初始值“null”。如果加上“= <值>”,则给<变量>赋予自定的初始值<值>。 数据类型 变量可以用的数据类型有:
由于 JavaScript 对数据类型的要求不严格,一般来说,声明变量的时候不需要声明类型。而且就算声明了类型,在过程中还可以给变量赋予其他类型的值。声明类型可以用赋予初始值的方法做到:
这将把 aString 定义为具有空值的字符串型变量。
这将把 anInteger 定义为值为 0 的整型。 变量的赋值 一个变量声明后,可以在任何时候对其赋值。赋值的语法是:
其中“=”叫“赋值符”,它的作用是把右边的值赋给左边的变量。下一节将讨论到表达式。 JavaScript常数 有下列几个:
在 Math 对象中还有一系列数学常数。这将在讨论“对象化编程”时谈到。 表达式与运算符表达式 与数学中的定义相似,表达式是指具有一定的值的、用运算符把常数和变量连接起来的代数式。一个表达式可以只包含一个常数或一个变量。运算符可以是四则运算符、关系运算符、位运算符、逻辑运算符、复合运算符。下表将这些运算符从高优先级到低优先级排列:
注意 所有与四则运算有关的运算符都不能作用在字符串型变量上。字符串可以使用 +、+= 作为连接两个字符串之用。 提示 请密切注意运算的优先级。编程时如果不记得运算符的优先级,可以使用括号( )。例如:(a == 0)||(b == 0)。 一些用来赋值的表达式,由于有返回的值,可以加以利用。例如,用以下语句:a = b = c = 10,可以一次对三个变量赋值。 语句下面将开始讨论 JavaScript 基本编程命令,或者叫“语句”。 像其他所有语言一样,JavaScript 的注释在运行时也是被忽略的。注释只给程序员提供消息。 JavaScript 注释有两种:单行注释和多行注释。单行注释用双反斜杠“//”表示。当一行代码有“//”,那么,“//”后面的部分将被忽略。而多行注释是用“/*”和“*/”括起来的一行到多行文字。程序执行到“/*”处,将忽略以后的所有文字,直到出现“*/”为止。 提示 如果你的程序需要草稿,或者需要让别人阅读,注释能帮上大忙。养成写注释的习惯,能节省你和其他程序员的宝贵时间,使他们不用花费多余的时间琢磨你的程序。在程序调试的时候,有时需要把一段代码换成另一段,或者暂时不要一段代码。这时最忌用 Delete 键,如果想要回那段代码怎么办?最好还是用注释,把暂时不要的代码“隐”去,到确定方法以后再删除也不迟。
本语句有点象条件表达式“?:”:当<条件>为真时执行<语句1>,否则,如果 else 部分存在的话,就执行<语句2>。与“?:”不同的是,if 只是一条语句,不会返回数值。<条件>是布尔值,必须用小括号括起来;<语句1>和<语句2>都只能是一个语句,欲使用多条语句,请用语句块。 注意 请看下例:
本代码企图用缩进的方法说明 else 是对应 if (a == 1) 的,但是实际上,由于 else 与 if (b == 0) 最相近,本代码不能按作者的想法运行。正确的代码是
提示 一行代码太长,或者涉及到比较复杂的嵌套,可以考虑用多行文本,如上例,if (a == 1) 后面没有立即写上语句,而是换一行再继续写。浏览器不会混淆的,当它们读完一行,发现是一句未完成语句,它们会继续往下读。使用缩进也是很好的习惯,当一些语句与上面的一两句语句有从属关系时,使用缩进能使程序更易读,方便程序员进行编写或修改工作。
本语句的作用是重复执行<语句>,直到<循环条件>为 false 为止。它是这样运作的:首先给<变量>赋<初始值>,然后*判断<循环条件>(应该是一个关于<变量>的条件表达式)是否成立,如果成立就执行<语句>,然后按<变量累加方法>对<变量>作累加,回到“*”处重复,如果不成立就退出循环。这叫做“for循环”。下面看看例子。
本语句先给 i 赋初始值 1,然后执行 document.write(i)语句(作用是在文档中写 i 的值,请参越“对象化编程”一章);重复时 i++,也就是把 i 加 1;循环直到 i<10 不满足,也就是 i>=10 时结束。结果是在文档中输出了“123456789”。 和 if 语句一样,<语句>只能是一行语句,如果想用多条语句,你需要用语句块。 与其他语言不同,JavaScript 的 for 循环没有规定循环变量每次循环一定要加一或减一,<变量累加方法>可以是任意的赋值表达式,如 i+=3、i*=2、i-=j 等都成立。 提示 适当的使用 for 循环,能使 HTML 文档中大量的有规律重复的部分简化,也就是用 for 循环重复写一些 HTML 代码,达到提高网页下载速度的目的。不过请在 Netscape 中重复进行严格测试,保证通过了才好把网页传上去。作者曾试过多次因为用 for 循环向文档重复写 HTML 代码而导致 Netscape“猝死”。IE 中绝对没有这种事情发生,如果你的网也是只给 IE 看的,用多多的 for 也没问题。 除了 for 循环,JavaScript 还提供 while 循环。
比 for 循环简单,while 循环的作用是当满足<循环条件>时执行<语句>。while 循环的累加性质没有 for 循环强。<语句>也只能是一条语句,但是一般情况下都使用语句块,因为除了要重复执行某些语句之外,还需要一些能变动<循环条件>所涉及的变量的值的语句,否则一但踏入此循环,就会因为条件总是满足而一直困在循环里面,不能出来。这种情况,我们习惯称之为“死循环”。死循环会弄停当时正在运行的代码、正在下载的文档,和占用很大的内存,很可能造成死机,应该尽最大的努力避免。 break 和 continue 有时候在循环体内,需要立即跳出循环或跳过循环体内其余代码而进行下一次循环。break 和 continue 帮了我们大忙。
本语句放在循环体内,作用是立即跳出循环。
本语句放在循环体内,作用是中止本次循环,并执行下一次循环。如果循环的条件已经不符合,就跳出循环。 例
输出:124679。 如果要把某些数据分类,例如,要把学生的成绩按优、良、中、差分类,我们可能会用 if 语句:
看起来没有问题,但使用太多的 if 语句的话,程序看起来有点乱。switch 语句就是解决这种问题的最好方法。
这一大段的作用是:计算 e 的值(e 为表达式),然后跟下边“case”后的 r1、r2……比较,当找到一个相等于 e 的值时,就执行该“case”后的语句,直到遇到 break 语句或 switch 段落结束(“}”)。如果没有一个值与 e 匹配,那么就执行“default:”后边的语句,如果没有 default 块,switch 语句结束。 上边的 if 段用 switch 改写就是:
其中 parseInt()方法是以后会介绍的,作用是取整。最后 default 段用的 if 语句,是为了不把 100 分当错误论(parseInt(100 / 10) == 10)。 . |
|
来自: 坚持不懈 > 《JavaScript教程》