JavaScipt基本教程之JavaScript语言的基础 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在什么地方插入 JavaScript JavaScript 可以出现在 HTML 的任意地方 。使用标记<script>…</script>,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在<HTML>之前插入也不成问题 。不过如果要在声明框架的网页(框架网页)中插入,就一定要在<frameset>之前插入,否则不会运行 。 基本格式 <script> 另外一种插入 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语句> 这样的格式也可以用在连接中: <a href="javascript:<JavaScript语句>">...</a> JavaScript 基本语法 每一句 JavaScript 都有类似于以下的格式: <语句>; 其中分号“;”是 JavaScript 语言作为一个语句结束的标识符 。虽然现在很多浏览器都允许用回车充当结束符号,培养用分号作结束的习惯仍然是很好的 。 语句块 语句块是用大括号“{ }”括起来的一个或 n 个语句 。在大括号里边是几个语句,但是在大括号外边,语句块是被当作一个语句的 。语句块是可以嵌套的,也就是说,一个语句块里边可以再包含一个或多个语句块 。 JavaScript 中的变量 什么是变量 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器 。所储存的值,可以是数字、字符或其他的一些东西 。 变量的命名 变量的命名有以下要求: 只包含字母、数字和/或下划线; 要以字母开头; 不能太长(其实有什么人喜欢使用又长又臭的名字呢?); 不能与 JavaScript 保留字(Key Words,Reserved Words,数量繁多,不能一一列出;凡是可以用来做 JavaScript 命令的字都是保留字)重复 。 而且,变量是区分大小写的,例如,variable 和 Variable 是两个不同的变量 。不仅如此,大部分命令和“对象”(请参阅“对象化编程”章)都是区分大小写的 。 提示 给变量命名,最好避免用单个字母“a”“b”“c”等,而改用能清楚表达该变量在程序中的作用的词语 。这样,不仅别人能更容易的了解你的程序,而且你在以后要修改程序的时候,也很快会记得该变量的作用 。变量名一般用小写,如果是由多个单词组成的,那么第一个单词用小写,其他单词的第一个字母用大写 。例如:myVariable 和 myAnotherVariable 。这样做仅仅是为了美观和易读,因为 JavaScript 一些命令(以后将用更具体的方法阐述“命令”一词)都是用这种方法命名的:indexOf;charAt 等等 。 变量需要声明 没有声明的变量不能使用,否则会出错:“未定义” 。声明变量可以用: var <变量> [= <值>]; var 我们接触的第一个关键字(即保留字) 。这个关键字用作声明变量 。最简单的声明方法就是“var <变量>;”,这将为<变量>准备内存,给它赋初始值“null” 。如果加上“= <值>”,则给<变量>赋予自定的初始值<值> 。 数据类型 变量可以用的数据类型有: 整型 只能储存整数 。可以是正整数、0、负整数,可以是十进制、八进制、十六进制 。八进制数的表示方法是在数字前加“0”,如“0123”表示八进制数“123” 。十六进制则是加“0x”:“0xEF”表示十六进制数“EF” 。 浮点型 即“实型”,能储存小数 。有资料显示,某些平台对浮点型变量的支持不稳定 。没有需要就不要用浮点型 。 字符串型 是用引号“" "”、“ ”包起来的零个至多个字符 。用单引号还是双引号由你决定 。跟语文一样,用哪个引号开始就用哪个结束,而且单双引号可嵌套使用:这里是"JavaScript 教程" 。 不过跟语文不同的是,JavaScript 中引号的嵌套只能有一层 。如果想再多嵌一些,你需要转义字符: 转义字符 由于一些字符在屏幕上不能显示,或者 JavaScript 语法上已经有了特殊用途,在要用这些字符时,就要使用“转义字符” 。转义字符用斜杠“\”开头:\ 单引号、\" 双引号、\n 换行符、\r 回车(以上只列出常用的转义字符) 。于是,使用转义字符,就可以做到引号多重嵌套:Micro 说:"这里是\"JavaScript 教程\" 。" 布尔型 常用于判断,只有两个值可选:true(表“真”)和 false(表“假”) 。true 和 false 是 JavaScript 的保留字 。它们属于“常数” 。 对象 关于对象,在“对象化编程”一章将详细讲到 。 由于 JavaScript 对数据类型的要求不严格,一般来说,声明变量的时候不需要声明类型 。而且就算声明了类型,在过程中还可以给变量赋予其他类型的值 。声明类型可以用赋予初始值的方法做到: var aString = ; var anInteger = 0; 变量的赋值 一个变量声明后,可以在任何时候对其赋值 。赋值的语法是: <变量> = <表达式>; 其中“=”叫“赋值符”,它的作用是把右边的值赋给左边的变量 。下一节将讨论到表达式 。 JavaScript常数 有下列几个: null 一个特殊的空值 。当变量未定义,或者定义之后没有对其进行任何赋值操作,它的值就是“null” 。企图返回一个不存在的对象时也会出现null值 。 NaN “Not a Number” 。出现这个数值比较少见,以至于我们可以不理它 。当运算无法返回正确的数值时,就会返回“NaN”值 。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。 true 布尔值“真” 。用通俗的说法,“对” 。 false 布尔值“假” 。用通俗的说法,“错” 。 在 Math 对象中还有一系列数学常数 。这将在讨论“对象化编程”时谈到 。 表达式与运算符 表达式 与数学中的定义相似,表达式是指具有一定的值的、用运算符把常数和变量连接起来的代数式 。一个表达式可以只包含一个常数或一个变量 。运算符可以是四则运算符、关系运算符、位运算符、逻辑运算符、复合运算符 。下表将这些运算符从高优先级到低优先级排列:
注意 所有与四则运算有关的运算符都不能作用在字符串型变量上 。字符串可以使用 +、+= 作为连接两个字符串之用 。 提示 请密切注意运算的优先级 。编程时如果不记得运算符的优先级,可以使用括号( ) 。例如:(a == 0)||(b == 0) 。 一些用来赋值的表达式,由于有返回的值,可以加以利用 。例如,用以下语句:a = b = c = 10,可以一次对三个变量赋值 。 语句 下面将开始讨论 JavaScript 基本编程命令,或者叫“语句” 。 注释 像其他所有语言一样,JavaScript 的注释在运行时也是被忽略的 。注释只给程序员提供消息 。 JavaScript 注释有两种:单行注释和多行注释 。单行注释用双反斜杠“//”表示 。当一行代码有“//”,那么,“//”后面的部分将被忽略 。而多行注释是用“/*”和“*/”括起来的一行到多行文字 。程序执行到“/*”处,将忽略以后的所有文字,直到出现“*/”为止 。 提示 如果你的程序需要草稿,或者需要让别人阅读,注释能帮上大忙 。养成写注释的习惯,能节省你和其他程序员的宝贵时间,使他们不用花费多余的时间琢磨你的程序 。在程序调试的时候,有时需要把一段代码换成另一段,或者暂时不要一段代码 。这时最忌用 Delete 键,如果想要回那段代码怎么办?最好还是用注释,把暂时不要的代码“隐”去,到确定方法以后再删除也不迟 。 if 语句 if ( <条件> ) <语句1> [ else <语句2> ]; 注意 请看下例: if (a == 1) if (a == 1) { 循环体 for (<变量>=<初始值>; <循环条件>; <变量累加方法>) <语句>; for (i = 1; i < 10; i++) document.write(i); 和 if 语句一样,<语句>只能是一行语句,如果想用多条语句,你需要用语句块 。 与其他语言不同,JavaScript 的 for 循环没有规定循环变量每次循环一定要加一或减一,<变量累加方法>可以是任意的赋值表达式,如 i+=3、i*=2、i-=j 等都成立 。 提示 适当的使用 for 循环,能使 HTML 文档中大量的有规律重复的部分简化,也就是用 for 循环重复写一些 HTML 代码,达到提高网页下载速度的目的 。不过请在 Netscape 中重复进行严格测试,保证通过了才好把网页传上去 。作者曾试过多次因为用 for 循环向文档重复写 HTML 代码而导致 Netscape“猝死” 。IE 中绝对没有这种事情发生,如果你的网也是只给 IE 看的,用多多的 for 也没问题 。 除了 for 循环,JavaScript 还提供 while 循环 。 while (<循环条件>) <语句>; break 和 continue 有时候在循环体内,需要立即跳出循环或跳过循环体内其余代码而进行下一次循环 。break 和 continue 帮了我们大忙 。 break; 本语句放在循环体内,作用是立即跳出循环 。 continue; 本语句放在循环体内,作用是中止本次循环,并执行下一次循环 。如果循环的条件已经不符合,就跳出循环 。 例 for (i = 1; i < 10; i++) { switch 语句 如果要把某些数据分类,例如,要把学生的成绩按优、良、中、差分类,我们可能会用 if 语句: if (score >= 0 && score < 60) { switch (e) { 上边的 if 段用 switch 改写就是: switch (parseInt(score / 10)) { |