《javascript基础入门.ppt》由会员分享,可在线阅读,更多相关《javascript基础入门.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JavaScript主要内容1了解了解JavaScript2JavaScript入门入门3语言基础语言基础4内置对象内置对象5对象与对象与DOM6图像处理图像处理7框架框架8表单与事件处理表单与事件处理一、了解一、了解JavaScript 1.了解了解JavaScript 2.JavaScript与与Java 3.JavaScript与与Java不同点不同点 4.JavaScript工作流程工作流程 5.JavaScript可以做什么可以做什么 6.JavaScript不可以做什么不可以做什么了解了解JavaScriptv是一种基于对象对象和事件驱动事件驱动并具有安全性的解释性解释性语言,其目
2、的就是增强Web客户交互。弥补了HTML的缺陷。页面页面标准行为表示CSS结构HTMLJavaScript与与Javav处于两家不同的公司,属于两种完全不同的产品。vJava是SUN公司推出的新一代面向对象的程序设计语言,特别适合Internet应用程序开发,前生是Oak语言。vJavaScript是Netscape公司的产品,是一种可嵌入到WEB当中的基于对象和事件驱动的解释性语言,前生是LiveScript。JavaScript与与Java不同点不同点v基于对象和面向对象v解释和编译v强变量和弱变量v代码格式不一样v嵌入方式不一样v静态联编和动态联编(对象引用在运行时进行检查,对象引用必须
3、在编译时的进行)JavaScript工作流程工作流程请求ClientWeb ServerHtml文档.ISAPI执行结果+html形成模板文本JavaScirpt可以做什么可以做什么v使网页更具有交互性,给用户提供更好,更令人兴奋的体验。v确保用户在表单中输入有效的信息,可以节省你的业务开支。v即时创建HTML页面。v还可以处理表单,设置cookie,创建基于Web的应用程序。JavaScirpt不可以做什么不可以做什么v不允许读写客户机器上的文件。v不允许写服务器上的文件。v不能关闭不是由它打开的窗口。v不能从来自另一个服务器的已经打开的网页中读取信息。二二.JavaScript入门入门1.
4、脚本写在哪里?脚本写在哪里?2.第一个第一个JavaScript程序程序3.在脚本中写注释在脚本中写注释4.弹出对话框弹出对话框5.关闭一个浏览器窗口关闭一个浏览器窗口 脚本写在哪里?脚本写在哪里?.HTML文档文档functionHELLO().src=第一个第一个JavaScript程序程序vvvvfunctionAge()vvdocument.write(“Iam20!);vvvvvv在脚本中写注释在脚本中写注释v两种注释示例/*/与/v/*ThisisanexampleofalongJavaScriptcomment.Notethecharactersatthebeginningend
5、ingofthecomment.*/vFunctionEmg()/ThisiswriteMessage.v弹出对话框弹出对话框v三种对话框三种对话框functionDialogBox()/alert(welcome!);一个按钮/confirm(canyouspeakenglish?);两个按钮prompt(“howoldareyou?”,”23”);有默认回答,两个按钮关闭一个浏览器窗口关闭一个浏览器窗口v两种关闭方式标签关闭标签关闭与按钮关闭按钮关闭关闭窗口functionNVGClose()window.close();三三.语言基础语言基础1.基本数据类型基本数据类型常量常量2.基本数
6、据类型基本数据类型变量变量3.转义字符转义字符4.表达式表达式5.运算符运算符6.控制语句控制语句7.JavaScript函数函数8.错误处理错误处理基本数据类型基本数据类型常量常量 v整型整型只能储存整数。可以是正整数、0、负整数,可以是十进制、八进制、十六进制。八进制数的表示方法是在数字前加“0”,如“0123”表示八进制数“123”。十六进制则是加“0 x”:“0 xEF”表示十六进制数“EF”。v浮点型浮点型即“实型”,能储存小数。有资料显示,某些平台对浮点型变量的支持不稳定。没有需要就不要用浮点型。v字符串型字符串型是用引号“”“”、“”包起来的零个至多个字符,而且单双引号可嵌套使用
7、。v布尔型布尔型常用于判断,只有两个值可选:true(表“真”)和false(表“假”)。true和false是JavaScript的保留字。它们属于“常数”。基本数据类型基本数据类型变量变量v变量的命名变量的命名变量的命名有以下要求:1.只包含字母、数字和/或下划线;2.要以字母开头;3.不能太长;4.不能使用JavaScript中的关键字作为变量;变量是区分大小写的,例如,variable 和 Variable 是两个不同的变量v变量需要声明变量需要声明 没有声明的变量不能使用,否则会出错:“未定义”。声明变量可以用:var =v变量作用域变量作用域。全局变量是定义在所有函数体之外,其作用
8、范围是整个函数;而局部变量是定义在函数体之内,只对其该函数是可见的,而对其它函数则是不可见的。转义字符转义字符v由于一些字符在屏幕上不能显示,或者 JavaScript 语法上已经有了特殊用途,在要用这些字符时,就要使用“转义字符”。v转义字符用斜杠“”开头:单引号、“双引号、n 换行符、r 回车。于是,使用转义字符,就可以做到引号多重嵌套:Micro 说:”这里是“JavaScript 教程”。表达式表达式v表达式表达式在定义完变量后,就可以对它们进行赋值、改变、计算等一系列操作,这一过程通常又叫称一个叫表达式来完成,可以说它是变量、常量、布尔及运算符的集合,因此表达式可以分为算术表述式、字
9、串表达式、赋值表达式以及布尔表达式等。vvarm=1+9;vvarm=“hello”+”world”;vvarm=100;vvarm=false;运算符运算符v1算术运算符算术运算符JavaScript中的算术运算符有单目运算符和双目运算符。双目运算符:+(加)、-(减)、*(乘)、/(除)、%(取模)、|(按位或)、&(按位与)、(右移)、(右移,零填充)。单目运算符:-(取反)、(取补)、+(递加1)、-(递减1)。v2比较运算符比较运算符比较运算符它的基本操作过程是,首先对它的操作数进行比较,然后再返回一个true或False值,有个比较运算符:(大于)、=(大于等于)、=(等于)、!=
10、(不等于)。v3布尔逻辑运算符布尔逻辑运算符!(取反)、&=(与之后赋值)、&(逻辑与)、|=(或之后赋值)、|(逻辑或)、=(异或之后赋值)、(逻辑异或)、?:(三目操作符)、|(或)、=(等于)、|=(不等于)。控制语句控制语句v第一种是选择结构第一种是选择结构1.单一选择结构(if)2.二路选择结构(if/else)3.内联三元运算符?:4.多路选择结构(switch)v第二种类型的程序控制结构是循环结构。第二种类型的程序控制结构是循环结构。1.由计数器控制的循环(for)2.在循环的开头测试表达式(while)3.在循环的末尾测试表达式(do/while)4.对对象的每个属性都进行操作
11、(for/in)条件语句条件语句v基本格式if(表述式)语句段;.else语句段;.功能:若表达式为true,则执行语句段;否则执行语句段。三元运算符三元运算符v基本格式条件表达式“?:”,当为真时执行,否则执行eg:varm=5;varn=3;varbol=(mn)?m:n;多目选择多目选择v基本格式解决多种条件判断 switch(e)case r1:(注意:冒号).break;case r2:.break;default:.循环语句循环语句forv基本格式for(初始化;条件;增量)语句集;功能:实现条件循环,当条件成立时,执行语句集,否则跳出循环体循环语句循环语句whilev基本格式wh
12、ile(条件)语句集;该语句与For语句一样,当条件为真时,重复循环,否则退出循环。*break和continue语句与C+语言相同,使用break语句使得循环从For或while中跳出,continue使得跳过循环内剩余的语句而进入下一次循环。do-while循环循环v基本格式dowhile(条件);功能:do.while 循环与 while 循环相似,在循环的末尾检查条件,它总是至少运行一次。forin循环循环vJScript提供了一种特别的循环方式来遍历一个对象的所有用户定义的属性或者一个数组的所有元素。for.in循环中的循环计数器是一个字符串,而不是数字。它包含当前属性的名称或者当前
13、数组元素的下标。/创建具有某些属性的对象varmyObject=newObject();myObject.name=James;myObject.age=22;myObject.phone=5551234;/枚举(循环)对象的所有属性for(propinmyObject)/显示ThepropertynameisJames,等等。window.alert(Theproperty+prop+is+myObjectprop);JavaScript函数函数vFunction函数名(参数,变元)函数体;.Return表达式;说明:当调用函数时,所用变量或字面量均可作为变元传递。函数由关键字Functio
14、n定义。函数名:定义自己函数的名字。参数表,是传递给函数使用或操作的值,其值可以是常量,变量或其它表达式。通过指定函数名(实参)来调用一个函数。必须使用Return将值返回。函数名对大小写是敏感的JavaScript函数函数v在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments.Length来检查参数的个数。Functionfunction_Name(exp1,exp2,exp3,exp4)Number=function_Name.arguments.length;if(Number1)doc
15、ument.wrile(exp2);if(Number2)document.write(exp3);if(Number3)document.write(exp4);错误处理错误处理v基本语句try/throw/catchtry语句块thrownewError(“”);catch(errMsg)alert(errMsg.message);eg:functionAge()tryvarm=age;varn=20;document.write(parseInt(m)+n);/抛出语句thrownewError(notavalidnumber);catch(errMsg)alert(errMsg.mes
16、sage);四、内置对象四、内置对象1.对象化编程对象化编程2.对象的基本知识对象的基本知识3.内置对象内置对象4.String字符串字符串5.5.ArrayArray数数组组6.Math7.7.DateDate日期日期8.全局对象全局对象9.自定义构造函数自定义构造函数10.自定义对象自定义对象11.11.expandoexpando属性属性12使用原型对象使用原型对象13.数组对象数组对象14.With语句语句对象化编程对象化编程vJavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为
17、它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。v虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文文件。对象的基本知识对象的基本知识v对象对象是可以从JavaScript“势力范围”中划分出来的一小块,可以是一段文字、一幅图片、一个表单(Form)等等。v每个对象有它自己的属性属性、方法方法和事件事件。v对象的属性属性是反映该对象某些特定的性质的,例如:字符串的长度、图像的长宽、
18、文字框(Textbox)里的文字等等;v对象的方法方法能对该对象做一些事情,例如,表单的“提交”(Submit),窗口的“滚动”(Scrolling)等等;v而对象的事件事件就能响应发生在对象上的事情,例如提交表单产生表单的“提交事件”,点击连接产生的“点击事件”。v不是所有的对象都有以上三个性质,有些没有事件,有些只有属性。引用对象的任一“性质”用“.”这种方法。内置对象内置对象vMicrosoftJscript提供了11个内部(或“内置”)对象。它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error以及St
19、ring对象。每一个对象有相关的方法和属性,这在语言参考中有详细的描述。String字符串字符串属性属性vlength用法:.length;返回该字符串的长度。v方法方法vcharAt()用法:.charAt();返回该字符串位于第位的单个字符。注意:字符串中的一个字符是第0位的,第二个才是第1位的,最后一个字符是第length-1位的。charCodeAt()用法:.charCodeAt();返回该字符串位于第位的单个字符的ASCII码。fromCharCode()用法:String.fromCharCode(a,b,c.);返回一个字符串,该字符串每个字符的ASCII码由a,b,c.等来确
20、定。String字符串字符串vindexOf()用法:.indexOf(,);该方法从中查找(如果给出就忽略之前的位置),如果找到了,就返回它的位置,没有找到就返回“-1”。所有的“位置”都是从零开始的。vlastIndexOf()用法:.lastIndexOf(,);跟indexOf()相似,不过是从后边开始找v。split()用法:.split();返回一个数组,该数组是从中分离开来的,决定了分离的地方,它本身不会包含在所返回的数组中。例如:1&2&345&678.split(&)返回数组:1,2,345,678。关于数组,我们等一下就讨论。String字符串字符串vsubstring()
21、用法:.substring(,);返回原字符串的子字符串,该字符串是原字符串从位置到位置的前一位置的一段。-=返回字符串的长度(length)。如果没有指定或指定得超过字符串长度,则子字符串从位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。vsubstr()用法:.substr(,);返回原字符串的子字符串,该字符串是原字符串从位置开始,长度为的一段。如果没有指定或指定得超过字符串长度,则子字符串从位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。vtoLowerCase()用法:.toLowerCase();返回把原字符串所有大写字母都变成小写的
22、字符串。vtoUpperCase()用法:.toUpperCase();返回把原字符串所有小写字母都变成大写的字符串。ArrayArray数数组组v数组的定义方法:vvar=newArray();v这样就定义了一个空数组。以后要添加数组元素,就用:v=.;v注意这里的方括号不是“可以省略”的意思,数组的下标表示方法就是用方括号括起来。v如果想在定义数组的时候直接初始化数据,请用:vvar=newArray(,.);ArrayArray数数组组v例如,varmyArray=newArray(1,4.5,Hi);定义了一个数组myArray,里边的元素是:myArray0=1;myArray1=4
23、.5;myArray2=Hi。v但是,如果元素列表中只有一个元素,而这个元素又是一个正整数的话,这将定义一个包含个空元素的数组。v注意:JavaScript只有一维数组!千万不要用“Array(3,4)”这种愚蠢的方法来定义4x5的二维数组,或者用“myArray2,3”这种方法来返回“二维数组”中的元素。任意“myArray.,3”这种形式的调用其实只返回了“myArray3”。要使用多维数组,请用这种虚拟法:vvarmyArray=newArray(newArray(),newArray(),newArray(),.);v其实这是一个一维数组,里边的每一个元素又是一个数组。调用这个“二维数
24、组”的元素时:myArray23=.;ArrayArray数数组组v属性属性vlength用法:.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。所以,想添加一个元素,只需要:myArraymyArray.length=.。v方法方法vjoin()用法:.join();返回一个字符串,该字符串把数组中的各个元素串起来,用置于元素与元素之间。这个方法不影响数组原本的内容。reverse()用法:.reverse();使数组中的元素顺序反过来。如果对数组1,2,3使用这个方法,它将使数组变成:3,2,1。slice()用法:.slice(,);返回一个数组
25、,该数组是原数组的子集,始于,终于。如果不给出,则子集一直取到原数组的结尾。sort()用法:.sort();使数组中的元素按照一定的顺序排列。如果不指定,则按字母顺序排列。在这种情况下,80是比9排得前的。如果指定,则按所指定的排序方法排序。比较难讲述,这里只将一些有用的介绍给大家。mathvMath 对象,提供对数据的数学计算。用法为“Math.”这种格式。v属性属性vE 返回常数e(2.718281828.)。vLN2 返回2的自然对数(ln2)。vLN10 返回10的自然对数(ln10)。vLOG2E 返回以2为低的e的对数(log2e)。vLOG10E 返回以10为低的e的对数(lo
26、g10e)。vPI 返回(3.1415926535.)。vSQRT1_2 返回1/2的平方根。vSQRT2 返回2的平方根。mathv方法方法vabs(x)返回x的绝对值。acos(x)返回x的反余弦值(余弦值等于x的角度),用弧度表示。asin(x)返回x的反正弦值。atan(x)返回x的反正切值。atan2(x,y)返回复平面内点(x,y)对应的复数的幅角,用弧度表示,其值在-到之间。ceil(x)返回大于等于x的最小整数。cos(x)返回x的余弦。exp(x)返回e的x次幂(ex)。floor(x)返回小于等于x的最大整数。mathvlog(x)返回x的自然对数(lnx)。max(a,b
27、)返回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的正切。DateDate日期日期v这个对象可以储存任意一个日期,从 0001 年到 9999 年,并且可以精确到毫秒数(1/1000 秒)。在内部,日期对象是一个整数,它是从 1970 年 1 月 1 日零时正开始计算到日期对象所指的日期的毫秒数。如果所指日期比 1970 年早,则它是一个负数。所有日期时间,如果不指定时区,都采用“UTC
28、”(世界时)时区,它与“GMT”(格林威治时间)在数值上是一样的。v定义一个日期对象:var d=new Date();这个方法使 d 成为日期对象,并且已有初始值:当前时间。DateDate日期日期v如果要自定初始值,可以用:var d=new Date(99,10,1);/99 年 10 月 1 日 var d=new Date(Oct 1,1999);/99 年 10 月 1 日 等等方法。方法 以下有很多“g/setUTCXXX”这样的方法,它表示既有“getXXX”方法,又有“setXXX”方法。“get”是获得某个数值,而“set”是设定某个数值。如果带有“UTC”字母,则表示获得
29、/设定的数值是基于 UTC 时间的,没有则表示基于本地时间或浏览期默认时间的。DateDate日期日期vg/setUTCFullYear()返回/设置年份,用四位数表示。如果使用“x.setUTCFullYear(99)”,则年份被设定为0099年。vg/setUTCYear()返回/设置年份,用两位数表示。设定的时候浏览器自动加上“19”开头,故使用“x.setUTCYear(00)”把年份设定为1900年。vg/setUTCMonth()返回/设置月份。vg/setUTCDate()返回/设置日期。vg/setUTCDay()返回/设置星期,0表示星期天。vg/setUTCHours()返
30、回/设置小时数,24小时制。vg/setUTCMinutes()返回/设置分钟数。vg/setUTCSeconds()返回/设置秒钟数。vg/setUTCMilliseconds()返回/设置毫秒数。DateDate日期日期vg/setTime()返回/设置时间,该时间就是日期对象的内部处理方法:从1970年1月1日零时正开始计算到日期对象所指的日期的毫秒数。如果要使某日期对象所指的时间推迟1小时,就用:“x.setTime(x.getTime()+60*60*1000);”(一小时60分,一分60秒,一秒1000毫秒)。vgetTimezoneOffset()返回日期对象采用的时区与格林威治
31、时间所差的分钟数。在格林威治东方的市区,该值为负,例如:中国时区(GMT+0800)返回“-480”。vtoString()返回一个字符串,描述日期对象所指的日期。这个字符串的格式类似于:“FriJul2115:43:46UTC+08002000”。vtoLocaleString()返回一个字符串,描述日期对象所指的日期,用本地时间表示格式。如:“2000-07-2115:43:46”。vtoGMTString()返回一个字符串,描述日期对象所指的日期,用GMT格式。vtoUTCString()返回一个字符串,描述日期对象所指的日期,用UTC格式。vparse()用法:Date.parse()
32、;返回该日期对象的内部表达方式。全局对象全局对象v全局对象从不现形,它可以说是虚拟出来的,目的在于把全局函数“对象化”。在MicrosoftJScript语言参考中,它叫做“Global对象”,但是引用它的方法和属性从来不用“Global.xxx”(况且这样做会出错),而直接用“xxx”。v方法方法veval()把括号内的字符串当作标准语句或表达式来运行。isFinite()如果括号内的数字是“有限”的(介于Number.MIN_VALUE和Number.MAX_VALUE之间)就返回true;否则返回false。isNaN()如果括号内的值是“NaN”则返回true否则返回false。par
33、seInt()返回把括号内的内容转换成整数之后的值。如果括号内是字符串,则字符串开头的数字部分被转换成整数,如果以字母开头,则返回“NaN”。全局对象全局对象vparseFloat()返回把括号内的字符串转换成浮点数之后的值,字符串开头的数字部分被转换成浮点数,如果以字母开头,则返回“NaN”。toString()用法:.toString();把对象转换成字符串。如果在括号中指定一个数值,则转换过程中所有数值转换成特定进制。escape()返回括号中的字符串经过编码后的新字符串。该编码应用于URL,也就是把空格写成“%20”这种格式。“+”不被编码,如果要“+”也被编码,请用:escape(.
34、,1)。unescape()是escape()的反过程。解编括号中字符串成为一般字符串。自定义构造函数自定义构造函数v我们已经知道,Array(),Image()等构造函数能让我们构造一个变量。其实我们自己也可以写自己的构造函数。自定义构造函数也是用 function。在 function 里边用 this 来定义属性。vfunction ().this.=;.v然后,用 new 构造函数关键字来构造变量:vvar =new();v构造变量以后,成为一个对象,它有它自己的属性用 this 在 function 里设定的属性。自定义构造函数自定义构造函数例如,下面的示例为 pasta 对象定义了
35、构造函数。注意 this 关键字的使用,它指向当前对象。/pasta 是有四个参数的构造器。function pasta(grain,width,shape,hasEgg)this.grain=grain;/是用什么粮食做的?this.width=width;/多宽?(数值)this.shape=shape;/横截面形状?(字符串)this.hasEgg=hasEgg;/是否加蛋黄?(boolean)this.toString=pastaToString;/这里添加 toString 方法(如下定义)。/注意在函数的名称后没有加圆括号;/这不是一个函数调用,而是对函数自身的引用。自定义构造函数
36、自定义构造函数/实际的用来显示 past 对象内容的函数。function pastaToString()/返回对象的属性。return Grain:+this.grain+n+Width:+this.width+n+Shape:+this.shape+n+Egg?:+Boolean(this.hasEgg);自定自定义对义对象象functionStudent(name)this.name=name;this.getName=getName;functiongetName()returnthis.name;functionButton1_onclick()vars=newStudent(lij
37、ie,20,asdad,13971212);alert(s.getName();alert(s.name);使用自己的使用自己的对对象象定义了对象构造器后,用 new 运算符创建对象实例。varspaghetti=newpasta(wheat,0.2,circle,true);/将调用toString()并显示spaghetti对象的属性。window.alert(spaghetti);expandoexpando属性属性可以给对象实例添加属性(expando属性)以改变该实例,但是用相同的构造器生成的其他对象定义中并不包括这些属性,而且除非你特意添加这些属性那么在其他实例中并不显示出来。sp
38、aghetti.color=pale straw;spaghetti.drycook=7;spaghetti.freshcook=0.5;var chowFun=new pasta(rice,3,flat,false);/chowFun 对象或其他现有的 pasta 对象/都没有添加到 spaghetti 对象的三个新属性。使用原型对象使用原型对象v如果要将对象所有实例的附加属性显示出来,必须将它们添加到构造函数或构造器原型对象中。v例如:将属性foodgroup加到 pasta 原型对象 中,这样 pasta 对象的所有实例都可以有该属性,包括那些已经生成的实例。pasta.prototyp
39、e.foodgroup=carbohydratesv现在 spaghetti.foodgroup、chowFun.foodgroup,等等 均包含值“carbohydrates”。使用原型对象使用原型对象例如,如果想要能够删除字符串的前后空格(与VBScript的Trim函数类似),就可以给String原型对象创建自己的方法。String.prototype.trim=function()/用正则表达式将前后空格用空字符串替代。returnthis.replace(/(s*)|(s*$)/g,);vars=leadingandtrailingspaces;/显示leadingandtraili
40、ngspaces(35)window.alert(s+(+s.length+);/删除前后空格s=s.trim();/显示leadingandtrailingspaces(27)window.alert(s+(+s.length+);数数组组和和对对象象通常,使用点运算符“.”访问对象的属性。例如,myObject.aProperty也可以用索引运算符“”访问对象的属性。在这里,是把对象看作一个关联数组。关联数组是一种数据结构,它可以动态地将任意的数据的值与任意的字符串相关联。例如myObjectnotavalididentifier=Thisisthepropertyvalue;myObje
41、ct100=100;索引“”字符串文字能被作为数据处理在运行之前并不知道属性名称时,这个差异会有用(比如基于用户输入构造对象时)。要想从一个关联数组提取所有的属性,必须用forin循环。数数组组和和对对象象由于所有的数组也是对象,也支持expando属性。请注意,虽然如此,添加的属性并不以任何方式与 length 属性相交互。例如:/三个元素的数组var myArray=new Array(3);myArray0=Hello;myArray1=42;myArray2=new Date(2000,1,1);window.alert(myArray.length);/显示数组的长度 3myArra
42、y.expando=JScript!;/添加某些 expando 属性myArrayanother Expando=Windows;/仍然显示 3,因为两个 expando 属性,并不影响长度。window.alert(myArray.length);with with 语语句句为一个或一组语句指定默认对象。用法:with();with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:x=Math.cos(3*Math.PI)+Math.sin(Math.LN10);y=Math.tan(14*Math.E);当使用 with 语句时,代码变得更短且更易
43、读:with(Math)x=cos(3*PI)+sin(LN10);y=tan(14*E);五五.对象与对象与DOMv1、宿主宿主对对象象v2 2、浏览器对象浏览器对象(Navigator)v3、屏幕对象屏幕对象(screen)v4、窗口对象窗口对象(Windows)v5、位置对象位置对象(Location)v6、历史对象历史对象(History)v7、文档对象文档对象(Document)v8、文档文档DOMv9、DOM结构图结构图v10、添加节点添加节点v11、删除节点删除节点v12、插入节点插入节点v13、替换节点替换节点宿主宿主对对象象使用浏览器的内部对象系统(宿主对象),可实现与HTM
44、L文档进行交互。它的作用是将相关元素组织包装起来,提供给程序设计人员使用,从而减轻编程人的劳动,提高设计Web页面的能力。浏览器对象(Navigator)提供有关浏览器的信息屏幕对象(screen)反映了当前用户的屏幕设置窗口对象(Windows)Window对象处于对象层次的最顶端,它提供了处理Navigator窗口的方法和属性。位置对象(Location)Location对象提供了与当前打开的URL一起工作的方法和属性,它是一个静态的对象。历史对象(History)History对象提供了与历史清单有关的信息。文档对象(Document)document对象包含了与文档元素(element
45、s)一起工作的对象,它将这些元素封装起来供编程人员使用。浏览器对象浏览器对象(Navigator)v属性:vappCodeName:返回浏览器的代码名,IE返回MozillavappName:返回浏览器名,IE返回“MicrosoftInternetExplorer”vappVersion:返回浏览器版本,包括版本号、语言、操作平台等vlanguage:返回浏览器编译语言vplatform:返回操作平台vNavigator对象的plugin属性以数组表示已安装的外挂程序vdescription外挂程序模块的描述vfilename外挂程序模块的文件名vlength外挂程序模块的个数vname外挂
46、程序模块的名称浏览器对象浏览器对象(Navigator)vEg:vvvarlen=navigator.plugins.length;vwith(document)vvwrite(你的浏览器共支持+len+种外挂插件:);vwrite()vwrite(外挂插件清单)vwrite(名称描述文件名)vfor(vari=0;ilen;i+)vwrite(+i+v+navigator.pluginsi.name+v+navigator.pluginsi.description+v+navigator.pluginsi.filename);vv屏幕对象屏幕对象(screen)v属性vscreen对象屏幕对
47、象,描述屏幕的显示及颜色属性vavailHeight屏幕区域的可用高度vavailWidth屏幕区域的可用宽度vcolorDepth颜色深度256/816/1632M/32vheight屏幕区域的实际高度vwidth屏幕区域的实际宽度屏幕对象屏幕对象(screen)vEg:vvif(screen.width800|screen.colorDepth8)vvvarmsg=本网站最佳浏览模式为800*600*256;valert(msg);vv窗口对象窗口对象(Windows)v属性:vname:窗口名称vstatus:改变状态栏的信息vself:当前窗口vtop:最顶端的框架页vparent:窗
48、口所属的框架页窗口对象窗口对象(Windows)vEg:vvfunctioncfm()vvvif(confirm(确定离开么?)v/关闭当前窗口,下面两个方法都可以v/window.close();vself.close();velsevreturnfalsevv窗口对象窗口对象(Windows)vwindow对象的open()方法:打开一个新窗口v参数:valwaysLowered是否将窗口显示的堆栈后推一层valwaysRaised是否将窗口显示的堆栈上推一层vdependent是否将该窗口与当前窗口产生依存关系vfullscreen是否满屏显示vdirectories是否显示连接工具栏v
49、location是否显示网址工具栏vmenubar是否显示菜单工具栏vscrollbars是否显示滚动条窗口对象窗口对象(Windows)vstatus是否显示状态栏vtitlebar是否显示标题栏vtoolbar是否显示标准工具栏vresizable是否可以改变窗口的大小vscreenX窗口左边界距离vscreenY窗口上边界距离vtop窗口上边界vwidth窗口宽度vheight窗口高度vleft窗口左边界vouterHeight窗口外边界的高度vpersonalbar是否显示个人工具栏位置对象位置对象(Location)v属性:vhash锚点名称vhost主机名称vhostnamehos
50、t:portvhref完整的URL字符串vpathname路径vport端口vprotocol协议vsearch查询信息v方法:vreload()重新加载vreplace()用指定的网页取代当前网页,并且当按下浏览器的“后退”键时将不能返回原先的网页位置对象位置对象(Location)vEg:vvv历史对象历史对象(History)v属性:vcurrent当前历史记录的网址vlength存储在记录清单中的网址数目vnext下一个历史记录的网址vprevious上一个历史记录的网址v方法:vback()回到上一个历史记录中的网址(和按下“后退”键等效)vforward()回到下一个历史记录中的网