JavaScript 语言

上传人:无*** 文档编号:161770682 上传时间:2022-10-15 格式:DOC 页数:38 大小:269.50KB
收藏 版权申诉 举报 下载
JavaScript 语言_第1页
第1页 / 共38页
JavaScript 语言_第2页
第2页 / 共38页
JavaScript 语言_第3页
第3页 / 共38页
资源描述:

《JavaScript 语言》由会员分享,可在线阅读,更多相关《JavaScript 语言(38页珍藏版)》请在装配图网上搜索。

1、JavaScript 语言在什么地方插入 JavaScriptJavaScript 基本语法JavaScript 中的变量表达式与运算符语句对象化编程对象的基本知识基本对象Number “数字”对象。String 字符串对象。Array 数组对象。Math “数学”对象Date 日期对象全局对象Global 对象函数全局变量文档对象navigator 浏览器对象screen 屏幕对象window 窗口对象history 历史对象location 地址对象Button 按钮对象Checkbox 复选框对象单个 Radio 对象的属性Select 选择区(下拉菜单、列表)对象不显示在文档中的 Im

2、age 对象.事件处理.在什么地方插入 JavaScriptJavaScript 可以出现在 HTML 的任意地方。使用标记,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在之前插入也不成问题。不过如果要在声明框架的网页(框架网页)中插入,就一定要在之前插入,否则不会运行。基本格式第二行和第四行的作用,是让不懂标记的浏览器忽略 JavaScript 代码。一般可以省略,因为现在想找不懂 Script 的浏览器,恐怕就连博物馆里也没有了。第四行前边的双反斜杠“/”是 JavaScript 里的注释标号,以后将学到。另外一种插入 JavaScript 的方法,是把 JavaSc

3、ript 代码写到另一个文件当中(此文件通常应该用“.js”作扩展名),然后用格式为“”的标记把它嵌入到文档中。注意,一定要用“”标记。参考 标记还有一个属性:language(缩写lang),说明脚本使用的语言。对于 JavaScript,请用“language=JavaScript”。参考 相对于标记,还有一个标记。标记所包含的,是服务器端(Server Side)的脚本。本教程只讨论客户器端(Client Side)的 JavaScript,也就是用标记包含的脚本。如果想在浏览器的“地址”栏中执行 JavaScript 语句,用这样的格式:javascript:这样的格式也可以用在连接中

4、:a href=javascript:.JavaScript 基本语法每一句 JavaScript 都有类似于以下的格式:;其中分号“;”是 JavaScript 语言作为一个语句结束的标识符。虽然现在很多浏览器都允许用回车充当结束符号,培养用分号作结束的习惯仍然是很好的。语句块 语句块是用大括号“ ”括起来的一个或 n 个语句。在大括号里边是几个语句,但是在大括号外边,语句块是被当作一个语句的。语句块是可以嵌套的,也就是说,一个语句块里边可以再包含一个或多个语句块。JavaScript 中的变量什么是变量 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器。所储存

5、的值,可以是数字、字符或其他的一些东西。变量的命名 变量的命名有以下要求:只包含字母、数字和/或下划线;要以字母开头;不能太长(其实有什么人喜欢使用又长又臭的名字呢?);不能与 JavaScript 保留字(Key Words,Reserved Words,数量繁多,不能一一列出;凡是可以用来做 JavaScript 命令的字都是保留字)重复。 而且,变量是区分大小写的,例如,variable 和 Variable 是两个不同的变量。不仅如此,大部分命令和“对象”(请参阅“对象化编程”章)都是区分大小写的。 提示 给变量命名,最好避免用单个字母“a”“b”“c”等,而改用能清楚表达该变量在程序

6、中的作用的词语。这样,不仅别人能更容易的了解你的程序,而且你在以后要修改程序的时候,也很快会记得该变量的作用。变量名一般用小写,如果是由多个单词组成的,那么第一个单词用小写,其他单词的第一个字母用大写。例如:myVariable 和 myAnotherVariable。这样做仅仅是为了美观和易读,因为 JavaScript 一些命令(以后将用更具体的方法阐述“命令”一词)都是用这种方法命名的:indexOf;charAt 等等。变量需要声明 没有声明的变量不能使用,否则会出错:“未定义”。声明变量可以用:var = ;var 我们接触的第一个关键字(即保留字)。这个关键字用作声明变量。最简单的

7、声明方法就是“var ;”,这将为准备内存,给它赋初始值“null”。如果加上“= ”,则给赋予自定的初始值。数据类型 变量可以用的数据类型有:整型 只能储存整数。可以是正整数、0、负整数,可以是十进制、八进制、十六进制。八进制数的表示方法是在数字前加“0”,如“0123”表示八进制数“123”。十六进制则是加“0x”:“0xEF”表示十六进制数“EF”。浮点型 即“实型”,能储存小数。有资料显示,某些平台对浮点型变量的支持不稳定。没有需要就不要用浮点型。字符串型 是用引号“ ”、“ ”包起来的零个至多个字符。用单引号还是双引号由你决定。跟语文一样,用哪个引号开始就用哪个结束,而且单双引号可嵌

8、套使用:这里是JavaScript 教程。 不过跟语文不同的是,JavaScript 中引号的嵌套只能有一层。如果想再多嵌一些,你需要转义字符:转义字符 由于一些字符在屏幕上不能显示,或者 JavaScript 语法上已经有了特殊用途,在要用这些字符时,就要使用“转义字符”。转义字符用斜杠“”开头: 单引号、 双引号、n 换行符、r 回车(以上只列出常用的转义字符)。于是,使用转义字符,就可以做到引号多重嵌套:Micro 说:这里是JavaScript 教程。 布尔型 常用于判断,只有两个值可选:true(表“真”)和 false(表“假”)。true 和 false 是 JavaScript

9、 的保留字。它们属于“常数”。对象 关于对象,在“对象化编程”一章将详细讲到。由于 JavaScript 对数据类型的要求不严格,一般来说,声明变量的时候不需要声明类型。而且就算声明了类型,在过程中还可以给变量赋予其他类型的值。声明类型可以用赋予初始值的方法做到:var aString = ;这将把 aString 定义为具有空值的字符串型变量。var anInteger = 0;这将把 anInteger 定义为值为 0 的整型。变量的赋值 一个变量声明后,可以在任何时候对其赋值。赋值的语法是: = ;其中“=”叫“赋值符”,它的作用是把右边的值赋给左边的变量。下一节将讨论到表达式。 Jav

10、aScript常数 有下列几个:null 一个特殊的空值。当变量未定义,或者定义之后没有对其进行任何赋值操作,它的值就是“null”。企图返回一个不存在的对象时也会出现null值。NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。true 布尔值“真”。用通俗的说法,“对”。false 布尔值“假”。用通俗的说法,“错”。在 Math 对象中还有一系列数学常数。这将在讨论“对象化编程”时谈到。表达式与运算符表达式

11、 与数学中的定义相似,表达式是指具有一定的值的、用运算符把常数和变量连接起来的代数式。一个表达式可以只包含一个常数或一个变量。运算符可以是四则运算符、关系运算符、位运算符、逻辑运算符、复合运算符。下表将这些运算符从高优先级到低优先级排列:括号(x) x中括号只用于指明数组的下标求反、自加、自减-x返回 x 的相反数!x返回与 x (布尔值)相反的布尔值x+x 值加 1,但仍返回原来的 x 值x-x 值减 1,但仍返回原来的 x 值 +xx 值加 1,返回后来的 x 值-xx 值减 1,返回后来的 x 值乘、除x*y返回 x 乘以 y 的值x/y返回 x 除以 y 的值x%y返回 x 与 y 的

12、模(x 除以y 的余数)加、减x+y返回 x 加 y 的值x-y返回 x 减 y 的值关系运算xy x=y xy当符合条件时返回 true 值,否则返回 false 值等于、不等于x=y当 x 等于 y 时返回 true 值,否则返回 false 值x!=y当 x 不等于 y 时返回 true 值,否则返回 false 值位与x&y当两个数位同时为 1 时,返回的数据的当前数位为 1,其他情况都为 0位异或xy两个数位中有且只有一个为 0 时,返回 0,否则返回 1位或x|y两个数位中只要有一个为 1,则返回 1;当两个数位都为零时才返回零位运算符通常会被当作逻辑运算符来使用。它的实际运算情况

13、是:把两个操作数(即 x 和 y)化成二进制数,对每个数位执行以上所列工作,然后返回得到的新二进制数。由于“真”值在电脑内部(通常)是全部数位都是 1 的二进制数,而“假”值则是全部是 0 的二进制数,所以位运算符也可以充当逻辑运算符。逻辑与x&y当 x 和 y 同时为 true 时返回 true,否则返回 false逻辑或x|y当 x 和 y 任意一个为 true 时返回 true,当两者同时为 false 时返回 false逻辑与/或有时候被称为“快速与/或”。这是因为当第一操作数(x)已经可以决定结果,它们将不去理会 y 的值。例如,false & y,因为x = false,不管 y

14、的值是什么,结果始终是 false,于是本表达式立即返回 false,而不论 y 是多少,甚至 y 可以导致出错,程序也可以照样运行下去。 条件c?x:y当条件 c 为 true 时返回 x 的值(执行 x 语句),否则返回 y 的值(执行 y 语句)赋值、复合运算x=y把 y 的值赋给 x,返回所赋的值x+=y x-=y x*=yx/=y x%=yx 与 y 相加/减/乘/除/求余,所得结果赋给 x,并返回 x 赋值后的值注意 所有与四则运算有关的运算符都不能作用在字符串型变量上。字符串可以使用 +、+= 作为连接两个字符串之用。提示 请密切注意运算的优先级。编程时如果不记得运算符的优先级,

15、可以使用括号( )。例如:(a = 0)|(b = 0)。一些用来赋值的表达式,由于有返回的值,可以加以利用。例如,用以下语句:a = b = c = 10,可以一次对三个变量赋值。语句下面将开始讨论 JavaScript 基本编程命令,或者叫“语句”。注释像其他所有语言一样,JavaScript 的注释在运行时也是被忽略的。注释只给程序员提供消息。JavaScript 注释有两种:单行注释和多行注释。单行注释用双反斜杠“/”表示。当一行代码有“/”,那么,“/”后面的部分将被忽略。而多行注释是用“/*”和“*/”括起来的一行到多行文字。程序执行到“/*”处,将忽略以后的所有文字,直到出现“*

16、/”为止。提示 如果你的程序需要草稿,或者需要让别人阅读,注释能帮上大忙。养成写注释的习惯,能节省你和其他程序员的宝贵时间,使他们不用花费多余的时间琢磨你的程序。在程序调试的时候,有时需要把一段代码换成另一段,或者暂时不要一段代码。这时最忌用 Delete 键,如果想要回那段代码怎么办?最好还是用注释,把暂时不要的代码“隐”去,到确定方法以后再删除也不迟。if 语句if ( ) else ;本语句有点象条件表达式“?:”:当为真时执行,否则,如果 else 部分存在的话,就执行。与“?:”不同的是,if 只是一条语句,不会返回数值。是布尔值,必须用小括号括起来;和都只能是一个语句,欲使用多条语

17、句,请用语句块。注意 请看下例:if (a = 1) if (b = 0) alert(a+b);else alert(a-b);本代码企图用缩进的方法说明 else 是对应 if (a = 1) 的,但是实际上,由于 else 与 if (b = 0) 最相近,本代码不能按作者的想法运行。正确的代码是if (a = 1) if (b = 0) alert(a+b); else alert(a-b);提示 一行代码太长,或者涉及到比较复杂的嵌套,可以考虑用多行文本,如上例,if (a = 1) 后面没有立即写上语句,而是换一行再继续写。浏览器不会混淆的,当它们读完一行,发现是一句未完成语句,它

18、们会继续往下读。使用缩进也是很好的习惯,当一些语句与上面的一两句语句有从属关系时,使用缩进能使程序更易读,方便程序员进行编写或修改工作。循环体for (=; ; ) ;本语句的作用是重复执行,直到为 false 为止。它是这样运作的:首先给赋,然后*判断(应该是一个关于的条件表达式)是否成立,如果成立就执行,然后按对作累加,回到“*”处重复,如果不成立就退出循环。这叫做“for循环”。下面看看例子。for (i = 1; i 10; i+) document.write(i);本语句先给 i 赋初始值 1,然后执行 document.write(i)语句(作用是在文档中写 i 的值,请参越“对

19、象化编程”一章);重复时 i+,也就是把 i 加 1;循环直到 i=10 时结束。结果是在文档中输出了“123456789”。和 if 语句一样,只能是一行语句,如果想用多条语句,你需要用语句块。与其他语言不同,JavaScript 的 for 循环没有规定循环变量每次循环一定要加一或减一,可以是任意的赋值表达式,如 i+=3、i*=2、i-=j 等都成立。提示 适当的使用 for 循环,能使 HTML 文档中大量的有规律重复的部分简化,也就是用 for 循环重复写一些 HTML 代码,达到提高网页下载速度的目的。不过请在 Netscape 中重复进行严格测试,保证通过了才好把网页传上去。作者

20、曾试过多次因为用 for 循环向文档重复写 HTML 代码而导致 Netscape“猝死”。IE 中绝对没有这种事情发生,如果你的网也是只给 IE 看的,用多多的 for 也没问题。除了 for 循环,JavaScript 还提供 while 循环。while () ;比 for 循环简单,while 循环的作用是当满足时执行。while 循环的累加性质没有 for 循环强。也只能是一条语句,但是一般情况下都使用语句块,因为除了要重复执行某些语句之外,还需要一些能变动所涉及的变量的值的语句,否则一但踏入此循环,就会因为条件总是满足而一直困在循环里面,不能出来。这种情况,我们习惯称之为“死循环”

21、。死循环会弄停当时正在运行的代码、正在下载的文档,和占用很大的内存,很可能造成死机,应该尽最大的努力避免。break 和 continue有时候在循环体内,需要立即跳出循环或跳过循环体内其余代码而进行下一次循环。break 和 continue 帮了我们大忙。break;本语句放在循环体内,作用是立即跳出循环。continue;本语句放在循环体内,作用是中止本次循环,并执行下一次循环。如果循环的条件已经不符合,就跳出循环。例for (i = 1; i = 0 & score 60) result = fail; else if (score 80) result = pass; else if

22、 (score 90) result = good; else if (score = 100) result = excellent; else result = error;看起来没有问题,但使用太多的 if 语句的话,程序看起来有点乱。switch 语句就是解决这种问题的最好方法。switch (e) case r1: (注意:冒号) . break; case r2: . break; . default: . 这一大段的作用是:计算 e 的值(e 为表达式),然后跟下边“case”后的 r1、r2比较,当找到一个相等于 e 的值时,就执行该“case”后的语句,直到遇到 break

23、语句或 switch 段落结束(“”)。如果没有一个值与 e 匹配,那么就执行“default:”后边的语句,如果没有 default 块,switch 语句结束。上边的 if 段用 switch 改写就是:switch (parseInt(score / 10) case 0: case 1: case 2: case 3: case 4: case 5: result = fail; break; case 6: case 7: result = pass; break; case 8: result = good; break; case 9: result = excellent; b

24、reak; default: if (score = 100) result = excellent; else result = error;其中 parseInt()方法是以后会介绍的,作用是取整。最后 default 段用的 if 语句,是为了不把 100 分当错误论(parseInt(100 / 10) = 10)。对象化编程JavaScript 是使用“对象化编程”的,或者叫“面向对象编程”的。所谓“对象化编程”,意思是把 JavaScript 能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象。小到一个变量,大到网页文档、

25、窗口甚至屏幕,都是对象。这一章将“面向对象”讲述 JavaScript 的运行情况。对象的基本知识对象是可以从 JavaScript“势力范围”中划分出来的一小块,可以是一段文字、一幅图片、一个表单(Form)等等。每个对象有它自己的属性、方法和事件。对象的属性是反映该对象某些特定的性质的,例如:字符串的长度、图像的长宽、文字框(Textbox)里的文字等等;对象的方法能对该对象做一些事情,例如,表单的“提交”(Submit),窗口的“滚动”(Scrolling)等等;而对象的事件就能响应发生在对象上的事情,例如提交表单产生表单的“提交事件”,点击连接产生的“点击事件”。不是所有的对象都有以上

26、三个性质,有些没有事件,有些只有属性。引用对象的任一“性质”用“.”这种方法。基本对象现在我们要复习以上学过的内容了把一些数据类型用对象的角度重新学习一下。Number “数字”对象。这个对象用得很少,作者就一次也没有见过。不过属于“Number”的对象,也就是“变量”就多了。属性MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。MIN_VALUE 用法:Number.MIN_VALUE;返回“最小值”。NaN 用法:Number.NaN 或 NaN;返回“NaN”。“NaN”(不是数值)在很早就介绍过了。NEGATIVE_INFINITY 用法:Number.NEG

27、ATIVE_INFINITY;返回:负无穷大,比“最小值”还小的值。POSITIVE_INFINITY 用法:Number.POSITIVE_INFINITY;返回:正无穷大,比“最大值”还大的值。方法toString() 用法:.toString();返回:字符串形式的数值。如:若 a = 123;则 a.toString() = 123。String 字符串对象。声明一个字符串对象最简单、快捷、有效、常用的方法就是直接赋值。属性length 用法:.length;返回该字符串的长度。方法charAt() 用法:.charAt();返回该字符串位于第位的单个字符。注意:字符串中的一个字符是第

28、 0 位的,第二个才是第 1 位的,最后一个字符是第 length - 1 位的。charCodeAt() 用法:.charCodeAt();返回该字符串位于第位的单个字符的 ASCII 码。fromCharCode() 用法:String.fromCharCode(a, b, c.);返回一个字符串,该字符串每个字符的 ASCII 码由 a, b, c. 等来确定。indexOf() 用法:.indexOf(, );该方法从中查找(如果给出就忽略之前的位置),如果找到了,就返回它的位置,没有找到就返回“-1”。所有的“位置”都是从零开始的。lastIndexOf() 用法:.lastInde

29、xOf(, );跟 indexOf() 相似,不过是从后边开始找。split() 用法:.split();返回一个数组,该数组是从中分离开来的,决定了分离的地方,它本身不会包含在所返回的数组中。例如:1&2&345&678.split(&)返回数组:1,2,345,678。关于数组,我们等一下就讨论。substring() 用法:.substring(, );返回原字符串的子字符串,该字符串是原字符串从位置到位置的前一位置的一段。 - = 返回字符串的长度(length)。如果没有指定或指定得超过字符串长度,则子字符串从位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。s

30、ubstr() 用法:.substr(, );返回原字符串的子字符串,该字符串是原字符串从位置开始,长度为的一段。如果没有指定或指定得超过字符串长度,则子字符串从位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。toLowerCase() 用法:.toLowerCase();返回把原字符串所有大写字母都变成小写的字符串。toUpperCase() 用法:.toUpperCase();返回把原字符串所有小写字母都变成大写的字符串。Array 数组对象。数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置(既然是

31、“位置”,就也是从零开始的啦)。数组的定义方法:var = new Array();这样就定义了一个空数组。以后要添加数组元素,就用: = .;注意这里的方括号不是“可以省略”的意思,数组的下标表示方法就是用方括号括起来。如果想在定义数组的时候直接初始化数据,请用:var = new Array(, , .);例如,var myArray = new Array(1, 4.5, Hi); 定义了一个数组 myArray,里边的元素是:myArray0 = 1; myArray1 = 4.5; myArray2 = Hi。但是,如果元素列表中只有一个元素,而这个元素又是一个正整数的话,这将定义一

32、个包含个空元素的数组。注意:JavaScript只有一维数组!千万不要用“Array(3,4)”这种愚蠢的方法来定义 4 x 5 的二维数组,或者用“myArray2,3”这种方法来返回“二维数组”中的元素。任意“myArray.,3”这种形式的调用其实只返回了“myArray3”。要使用多维数组,请用这种虚拟法:var myArray = new Array(new Array(), new Array(), new Array(), .);其实这是一个一维数组,里边的每一个元素又是一个数组。调用这个“二维数组”的元素时:myArray23 = .;属性length 用法:.length;返

33、回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。所以,想添加一个元素,只需要:myArraymyArray.length = .。方法join() 用法:.join();返回一个字符串,该字符串把数组中的各个元素串起来,用置于元素与元素之间。这个方法不影响数组原本的内容。reverse() 用法:.reverse();使数组中的元素顺序反过来。如果对数组1, 2, 3使用这个方法,它将使数组变成:3, 2, 1。slice() 用法:.slice(, );返回一个数组,该数组是原数组的子集,始于,终于。如果不给出,则子集一直取到原数组的结尾。sort() 用法:.so

34、rt();使数组中的元素按照一定的顺序排列。如果不指定,则按字母顺序排列。在这种情况下,80 是比 9 排得前的。如果指定,则按所指定的排序方法排序。比较难讲述,这里只将一些有用的介绍给大家。按升序排列数字:function sortMethod(a, b) return a - b;myArray.sort(sortMethod);按降序排列数字:把上面的“a - b”该成“b - a”。有关函数,请看下面。Math “数学”对象,提供对数据的数学计算。下面所提到的属性和方法,不再详细说明“用法”,大家在使用的时候记住用“Math.”这种格式。属性E 返回常数 e (2.718281828.

35、)。LN2 返回 2 的自然对数 (ln 2)。LN10 返回 10 的自然对数 (ln 10)。LOG2E 返回以 2 为低的 e 的对数 (log2e)。LOG10E 返回以 10 为低的 e 的对数 (log10e)。PI 返回(3.1415926535.)。SQRT1_2 返回 1/2 的平方根。SQRT2 返回 2 的平方根。方法abs(x) 返回 x 的绝对值。acos(x) 返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示。asin(x) 返回 x 的反正弦值。atan(x) 返回 x 的反正切值。atan2(x, y) 返回复平面内点(x, y)对应的复数的幅角,用弧

36、度表示,其值在 - 到 之间。ceil(x) 返回大于等于 x 的最小整数。cos(x) 返回 x 的余弦。exp(x) 返回 e 的 x 次幂 (ex)。floor(x) 返回小于等于 x 的最大整数。log(x) 返回 x 的自然对数 (ln x)。max(a, b) 返回 a, b 中较大的数。min(a, b) 返回 a, b 中较小的数。pow(n, m) 返回 n 的 m 次幂 (nm)。random() 返回大于 0 小于 1 的一个随机数。round(x) 返回 x 四舍五入后的值。sin(x) 返回 x 的正弦。sqrt(x) 返回 x 的平方根。tan(x) 返回 x 的正

37、切。Date 日期对象。这个对象可以储存任意一个日期,从 0001 年到 9999 年,并且可以精确到毫秒数(1/1000 秒)。在内部,日期对象是一个整数,它是从 1970 年 1 月 1 日零时正开始计算到日期对象所指的日期的毫秒数。如果所指日期比 1970 年早,则它是一个负数。所有日期时间,如果不指定时区,都采用“UTC”(世界时)时区,它与“GMT”(格林威治时间)在数值上是一样的。定义一个日期对象:var d = new Date;这个方法使 d 成为日期对象,并且已有初始值:当前时间。如果要自定初始值,可以用:var d = new Date(99, 10, 1); /99 年

38、10 月 1 日var d = new Date(Oct 1, 1999); /99 年 10 月 1 日等等方法。最好的方法就是用下面介绍的“方法”来严格的定义时间。方法以下有很多“g/setUTCXXX”这样的方法,它表示既有“getXXX”方法,又有“setXXX”方法。“get”是获得某个数值,而“set”是设定某个数值。如果带有“UTC”字母,则表示获得/设定的数值是基于 UTC 时间的,没有则表示基于本地时间或浏览期默认时间的。如无说明,方法的使用格式为:“.”,下同。g/setUTCFullYear() 返回/设置年份,用四位数表示。如果使用“x.setUTCFullYear(9

39、9)”,则年份被设定为 0099 年。g/setUTCYear() 返回/设置年份,用两位数表示。设定的时候浏览器自动加上“19”开头,故使用“x.setUTCYear(00)”把年份设定为 1900 年。g/setUTCMonth() 返回/设置月份。g/setUTCDate() 返回/设置日期。g/setUTCDay() 返回/设置星期,0 表示星期天。g/setUTCHours() 返回/设置小时数,24小时制。g/setUTCMinutes() 返回/设置分钟数。g/setUTCSeconds() 返回/设置秒钟数。g/setUTCMilliseconds() 返回/设置毫秒数。g/s

40、etTime() 返回/设置时间,该时间就是日期对象的内部处理方法:从 1970 年 1 月 1 日零时正开始计算到日期对象所指的日期的毫秒数。如果要使某日期对象所指的时间推迟 1 小时,就用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小时 60 分,一分 60 秒,一秒 1000 毫秒)。getTimezoneOffset() 返回日期对象采用的时区与格林威治时间所差的分钟数。在格林威治东方的市区,该值为负,例如:中国时区(GMT+0800)返回“-480”。toString() 返回一个字符串,描述日期对象所指的日期。这个字符串的格式类似于:“

41、Fri Jul 21 15:43:46 UTC+0800 2000”。toLocaleString() 返回一个字符串,描述日期对象所指的日期,用本地时间表示格式。如:“2000-07-21 15:43:46”。toGMTString() 返回一个字符串,描述日期对象所指的日期,用 GMT 格式。toUTCString() 返回一个字符串,描述日期对象所指的日期,用 UTC 格式。parse() 用法:Date.parse();返回该日期对象的内部表达方式。全局对象全局对象从不现形,它可以说是虚拟出来的,目的在于把全局函数“对象化”。在 Microsoft JScript 语言参考中,它叫做“

42、Global 对象”,但是引用它的方法和属性从来不用“Global.xxx”(况且这样做会出错),而直接用“xxx”。属性NaN 一早就说过了。方法eval() 把括号内的字符串当作标准语句或表达式来运行。isFinite() 如果括号内的数字是“有限”的(介于 Number.MIN_VALUE 和 Number.MAX_VALUE 之间)就返回 true;否则返回 false。isNaN() 如果括号内的值是“NaN”则返回 true 否则返回 false。parseInt() 返回把括号内的内容转换成整数之后的值。如果括号内是字符串,则字符串开头的数字部分被转换成整数,如果以字母开头,则返

43、回“NaN”。parseFloat() 返回把括号内的字符串转换成浮点数之后的值,字符串开头的数字部分被转换成浮点数,如果以字母开头,则返回“NaN”。toString() 用法:.toString();把对象转换成字符串。如果在括号中指定一个数值,则转换过程中所有数值转换成特定进制。escape() 返回括号中的字符串经过编码后的新字符串。该编码应用于 URL,也就是把空格写成“%20”这种格式。“+”不被编码,如果要“+”也被编码,请用:escape(., 1)。unescape() 是 escape() 的反过程。解编括号中字符串成为一般字符串。函数函数的定义 所谓“函数”,是有返回值的

44、对象或对象的方法。 函数的种类 常见的函数有:构造函数,如 Array(),能构造一个数组;全局函数,即全局对象里的方法;自定义函数;等等。 自定义函数 定义函数用以下语句: function 函数名(参数集) . return ; . 其中,用在 function 之后和函数结尾的大括号是不能省去的,就算整个函数只有一句。 函数名与变量名有一样的起名规定,也就是只包含字母数字下划线、字母排头、不能与保留字重复等。 参数集可有可无,但括号就一定要有。 参数 是函数外部向函数内部传递信息的桥梁,例如,想叫一个函数返回 3 的立方,你就要让函数知道“3”这个数值,这时候就要有一个变量来接收数值,这

45、种变量叫做参数。 参数集是一个或多个用逗号分隔开来的参数的集合,如:a, b, c。 函数的内部有一至多行语句,这些语句并不会立即执行,而只当有其它程序调用它时才执行。这些语句中可能包含“return”语句。在执行一个函数的时候,碰到 return 语句,函数立刻停止执行,并返回到调用它的程序中。如果“return”后带有,则退出函数的同时返回该值。 在函数的内部,参数可以直接当作变量来使用,并可以用 var 语句来新建一些变量,但是这些变量都不能被函数外部的过程调用。要使函数内部的信息能被外部调用,要么使用“return”返回值,要么使用全局变量。 全局变量 在 Script 的“根部”(非

46、函数内部)的“var”语句所定义的变量就是全局变量,它能在整个过程的任意地方被调用、更改。 例 function addAll(a, b, c) return a + b + c;var total = addAll(3, 4, 5); 这个例子建立了一个叫“addAll”的函数,它有 3 个参数:a, b, c,作用是返回三个数相加的结果。在函数外部,利用“var total = addAll(3, 4, 5);”接收函数的返回值。 更多的时候,函数是没有返回值的,这种函数在一些比较强调严格的语言中是叫做“过程”的,例如 Basic 类语言的“Sub”、Pascal 语言的“procedur

47、e”。 属性 arguments 一个数组,反映外部程序调用函数时指定的参数。用法:直接在函数内部调用“arguments”。 文档对象现在我们将开始讨论更“实际”的话题文档对象(DOM)。文档对象是指在网页文档里划分出来的对象。在 JavaScript 能够涉及的范围内有如下几个“大”对象:window, document, location, navigator, screen, history 等。下面是一个文档对象树,你可以看到对象下包含对象的“壮观”情景。要引用某个对象,就要把父级的对象都列出来。例如,要引用某表单“applicationForm”的某文字框“customerName

48、”,就要用“document.applicationForm.customerName”。下表中有些对象是全小写的,有些是以大写字母开头的。以大写字母开头的对象表示,引用该对象不使用下表列出的名字,而直接用对象的“名字”(Id 或 Name,下面有讲解),或用它所属的对象数组指定。这里我们不准备讲解对象的“事件”,虽然我们也会列出对象所能响应的事件。我们将会在下一章“事件处理”中讲解事件。 navigator screen window o history o location o frames; Frame o document anchors; links; Link applets em

49、beds forms; Form Button Checkbox elements; Element Hidden Password Radio Reset Select options; Option Submit Text Textarea images; Image 浏览器对象屏幕对象窗口对象历史对象地址对象框架对象文档对象连接对象Java小程序对象插件对象表单对象按钮对象复选框对象表单元素对象隐藏对象密码输入区对象单选域对象重置按钮对象选择区(下拉菜单、列表)对象选择项对象提交按钮对象文本框对象多行文本输入区对象图片对象 navigator 浏览器对象 反映了当前使用的浏览器的资料。属

50、性appCodeName 返回浏览器的“码名”(?),流行的 IE 和 NN 都返回 Mozilla。appName 返回浏览器名。IE 返回 Microsoft Internet Explorer,NN 返回 Netscape。appVersion 返回浏览器版本,包括了大版本号、小版本号、语言、操作平台等信息。platform 返回浏览器的操作平台,对于 Windows 9x 上的浏览器,返回 Win32(大小写可能有差异)。userAgent 返回以上全部信息。例如,IE5.01 返回 Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)。jav

51、aEnabled() 返回一个布尔值,代表当前浏览器允许不允许 Java。screen 屏幕对象 反映了当前用户的屏幕设置。属性width 返回屏幕的宽度(像素数)。height 返回屏幕的高度。availWidth 返回屏幕的可用宽度(除去了一些不自动隐藏的类似任务栏的东西所占用的宽度)。availHeight 返回屏幕的可用高度。colorDepth 返回当前颜色设置所用的位数 - 1:黑白;8:256色;16:增强色;24/32:真彩色window 窗口对象 最大的对象,它描述的是一个浏览器窗口。一般要引用它的属性和方法时,不需要用“window.xxx”这种形式,而直接使用“xxx”。

52、一个框架页面也是一个窗口。属性name 窗口的名称,由打开它的连接()或框架页()或某一个窗口调用的 open() 方法(见下)决定。一般我们不会用这个属性。status 指窗口下方的“状态栏”所显示的内容。通过对 status 赋值,可以改变状态栏的显示。opener 用法:window.opener;返回打开本窗口的窗口对象。注意:返回的是一个窗口对象。如果窗口不是由其他窗口打开的,在 Netscape 中这个属性返回 null;在 IE 中返回“未定义”(undefined)。undefined 在一定程度上等于 null。注意:undefined 不是 JavaScript 常数,如果

53、你企图使用“undefined”,那就真的返回“未定义”了。self 指窗口本身,它返回的对象跟 window 对象是一模一样的。最常用的是“self.close()”,放在标记中:“关闭窗口”。parent 返回窗口所属的框架页对象。top 返回占据整个浏览器窗口的最顶端的框架页对象。history 历史对象,见下。location 地址对象,见下。document 文档对象,见下。方法open() 打开一个窗口。用法:open(, , );:描述所打开的窗口打开哪一个网页。如果留空(),则不打开任意网页。:描述被打开的窗口的名称(window.name),可以使用_top、_blank等内

54、建名称。这里的名称跟“”里的“target”属性是一样的。:描述被打开的窗口的样貌。如果只需要打开一个普通窗口,该字符串留空(),如果要指定样貌,就在字符串里写上一到多个参数,参数之间用逗号隔开。例:打开一个 400 x 100 的干净的窗口:open(,_blank,width=400,height=100,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes)参数top=#窗口顶部离开屏幕顶部的像素数left=#窗口左端离开屏幕左端的像素数width=#窗口的宽度hei

55、ght=#窗口的高度menubar=.窗口有没有菜单,取值yes或notoolbar=.窗口有没有工具条,取值yes或nolocation=.窗口有没有地址栏,取值yes或nodirectories=.窗口有没有连接区,取值yes或noscrollbars=.窗口有没有滚动条,取值yes或nostatus=.窗口有没有状态栏,取值yes或noresizable=.窗口给不给调整大小,取值yes或noopen() 方法有返回值,返回的就是它打开的窗口对象。所以,var newWindow = open(,_blank);这样把一个新窗口赋值到“newWindow”变量中,以后通过“newWind

56、ow”变量就可以控制窗口了。close()关闭一个已打开的窗口。用法:window.close() 或 self.close():关闭本窗口;.close():关闭指定的窗口。如果该窗口有状态栏,调用该方法后浏览器会警告:“网页正在试图关闭窗口,是否关闭?”然后等待用户选择是否;如果没有状态栏,调用该方法将直接关闭窗口。blur()使焦点从窗口移走,窗口变为“非活动窗口”。focus()是窗口获得焦点,变为“活动窗口”。不过在 Windows 98,该方法只能使窗口的标题栏和任务栏上的相应按钮闪烁,提示用户该窗口正在试图获得焦点。scrollTo()用法:.scrollTo(x, y);使窗口

57、滚动,使文档从左上角数起的(x, y)点滚动到窗口的左上角。scrollBy()用法:.scrollBy(deltaX, deltaY);使窗口向右滚动 deltaX 像素,向下滚动 deltaY 像素。如果取负值,则向相反的方向滚动。resizeTo()用法:.resizeTo(width, height);使窗口调整大小到宽 width 像素,高 height 像素。resizeBy()用法:.resizeBy(deltaWidth, deltaHeight);使窗口调整大小,宽增大 deltaWidth 像素,高增大 deltaHeight 像素。如果取负值,则减少。alert() 用法:alert();弹出一个只包含“确定”按钮的对话框,显示的内容,整个文档的读取、Script 的运行都会暂停,直到用户按下“确定”。confirm() 用法:confirm(字

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!