JavaScript核心语言.doc_第1页
JavaScript核心语言.doc_第2页
JavaScript核心语言.doc_第3页
JavaScript核心语言.doc_第4页
JavaScript核心语言.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaScript 核心语言在前面的章节中介绍了在文档对象模型中JavaScript脚本的编程知识. 作为脚本编程语言,JavaScript语言提供丰富的编程功能. 从本章开始,分几个章节介绍JavaScript核心语言的编程语言知识. 本章将介绍与JavaScript脚本兼容性相关的编程知识.标记 IE4+提供了一个标记的变化版本,它将标记的语句与指定的对象以及对象产生的事件绑定. 除了语言说明之外,标记属性必须包括for和event属性(这不是HTML4.0规范的一部分). 指定给for属性的值是对特定对象的引用,它常常只限于对象id属性的标识符(IE4+允许使用document.all.objectID引用对象). Event属性是用户希望脚本响应的事件处理程序名,例如,假设在一个id为myParagraph段落中,需要设计一个脚本完成某些动作来响应mouseDown事件,该脚本语句就封装在下面的标记对中:标记对中的语句只在事件触发时执行,它不需要涵数定义.这种把对象事件与脚本绑定的方法意味着在元素标记中不需要定义事件处理程序,因此,它保证当事件发生时只有IE4或后续版本才能执行这个脚本. 如果脚本语句被多个对象调用,则不应该使用这种技术.运算符 JavaScript脚本具有丰富的运算符,第4章介绍了JavaScript脚本运算符的相关知识,这些基本运算符可适用任何支持JavaScript脚本的浏览器. 下面介绍几种部份浏览器支持的运算符. =和!=运算符 =和!=运算符是比较运算符,其含义是严格等于和严格不等于. =和!=运算符同时对数据类型和值进行比较. 只有两个运算数的类型和值都相等(如都是数值型),=运算符才返回真. 下面举例说明=和=的差别: var a = “9” var b = 9a=b /结果是true,数字9等于9a=b /结果是false,运算数类型不同如果使用parseInt()和parseFloat()函数将字符串转换成数值:parseInt(a,10)=b/结果是trueparseInt(a,10)=b/结果是true,操作数的类型和值都相等.Delete 数组对象不包含从集合中删除元素的方法,自定义对象也不提供删除属性的方法. 可以通过将值设为空字符串或null的方法,将数组项或属性值置空,但在对象中仍保持数组元素或属性. 使用delete操作符可以完全删除这些元素和属性. 删除数组项行为比较特殊,如果数组使用数值索引,删除给定的索引,就从数组中删除了这个索引值,但整个数组没有受到破坏,只改变那些高于删除项的数组项的索引值. 例如下面的简单紧凑数组: Var oceans= new Array(“Atlantic”,:”Pacific”,”Indian”,”Arctic”); 这类数组为了以后使用,自动为数组项指定索引,例如在for循环中: For(var i=0,ioceans.length;i+)If(oceansi = form.destination.value)statements如果有下面语句:Delete oceans2这时数组的第三个元素从数组中被删除. 注意数组长度不变,只是索引(2)从数组中删除,现在的数组如下: Oceans0 = “Atlantic”; Oceans1 = “Pacific”; Oceans3 = “Arctic”; 如果在引用数组中的oceans2,结果将是undefined. Delete 操作符对有命名索引的数组非常有效,由于佘下的项和值不依赖于被删除的索引项,因此脚本可以控制它们.InIn操作符让脚本检查对象,看一个对象中是否有命名的属性和方法. 操作符左边的操作数是属性或方法的引用,只有方法名没有括号;右边的操作数是需要检查的对象. 若对象有需要的属性或方法,返回true,因此可以将in操作符用在条件表达式中.例如: “write” in document/结果返回true.Typeof与处理逻辑和算术运算符不同,单目运算符typeof定义一个变量或表达式的值的类型.一般情况下,运算符用在确定一个变量值是否是下面的类型之一: number,string,Boolean,object,function 或undefined.由于变量可以在运行中改变数据类型,因此在编程中有时需要得到变量的数据类型. Typeof属性经常作为条件的一部分.例如:if(typeof myVar = “number”)myVar = parseInt(myVar)Typeof 运算求得的值是一个字符串.Void在所有支持脚本的浏览器中,使用javascrip:协议为HTML标记的href和src属性提供参数. 有时需要将表达式在void操作符后面的表达式用括号括起,不过只有当表达式含有比void的优先级低的操作符时,才有必要使用括号.例如:Href=”javascript: void(0)”Void 操作符保证函数或表达式的返回HTML属性使用的值,这样一个链接的onClick事件处理程序阻止了单击超链接的固有行为,例如求值为return false.String对象在任何编程语言中,字符串,数值和Boolean值等都是基本的数据类型. 在JavaScript脚本中,使用String对象对字符串进行处理. 本章将介绍String对象的基本知识.字符串数据类型虽然JavaScript脚本不是”强类型”语言. 但由于这些数据类型会影响处理该类型信息的方法,因此需要了解其包含的数据类型. 下面集中介绍字符串类型.简单字符串字符串同包含在一对引号内的一个或多个标准的文本字符组成. JavaScrip中可以使用单引号或双引号,只要使字符串外的引号配成对即可. 当在字符串中包含引用字符串时,这种方式的另一个优点就明显了. 例如,在变量中组合一行HTML代码,并在JavaScript的控制之下,将其完全写入新的窗口. 要分配给变量的文本行如下:Chocolate为将整行文本赋给一个变量,需要将整行用引号引起来. 下面有两种相同有效方式:Result = Chocolate;Result = “Chocolate”;在两种情况下,整个字符串外还有一对引号,字符串内的两个引号字符串同JavaScript处理. 可以使用其中的一种格式,然后在整个脚本中都使用这种格式.建立长字符串变量将字符串合并在一起,可以将几个小的片段组成一个长字符串. 这个特征对脚本非常重要,例如在将网页用document.write()语句写入其他框架这前,就需要在一个变量内构建HTML网页的详细内容.一个方法是在构建网页的过程中使语句的长度比较短,这样文本编辑器更易读取这些文本,这种方法使用+=运算符将等式右边的部分加到左边. 例如:Var newDocument=”;newDocument += “Lift and Times”;newDocument += “My Lift and Welcome to It”;从第二行开始,每个语句向newDocument中的字符串加入更多的数据,继续增加直到newDocument变量包含整个网页的全部内容.连接字符串常量和变量有时,需要创建一个由字符串常量(引号引起的字符)和字符变量值组成的字符串.将它们串联起来与将多个字符串文本串联的方法一样,加号运算符可以完成这个功能.下面的例子中,一个变量包含一个名称,变量值是长字符串的一部分,长字符串的其他部分是字符串常量:yourName = prompt(“Please enter you name:”,”);var msg = “Good afternoon, ”+ yourName +”.”;alert(msg);在进行连接操作时一般会遇到下列问题:u 偶然忽略字符串常量的一个引号u 没有在文本字符串中插入空格来产生字符间距u 忘记变量值后面的串联符号不要忘记这里所示的变量值可以是求值为字符串的表达式,包括属性引用和一些方法的结果.例如:Var msg = “The name of this document is ”+document.title +”.”;Alert(msg);特殊内嵌字符JavaScript脚本创建字符串文本的方式使得向字符串中添加字符比较困难,尤其是将引号,回车符,省略号和制表符添加到字符串. JavaScript脚本提供一种机制将这些字符加入到字符串文本中,可以在反斜线符号后面加上想要添加的字符. 对于”不可见”的字符,可以用反斜线后面的特殊字符集告诉JavaScript 该做些什么.最常用的反斜线符号如下:”双引号单引号反斜线b退格t制表符n换行r回车f换页在引号字符串文本中使用这此 ”内嵌字符串”(有时称为”转义字符”)可以使JavaScript识别它们.如果组合文本块时需要另起一段,可以插入n字符对.下面是使用这些特殊字符的几个例子:Msg = “Youre doing fine.”;Msg = “This is then first line.nThis is then second line.”;Msg = document.title + “n” + document.links.length + “links present.”;从技术上讲,人们熟知的回车既是一个换行符(另起一行),又是一个回车符.虽然JavaScript字符串换行(n)作为完整的回车符,但要组合一个返回服务器上CGI脚本的字符串时,应该用rn,其格式依赖于CGI程序的字符串解析功能.String 对象处理字符串的值,要将字符串值作为拥有属性和方法的对象处理,就像其它JavaScript对象一样. 最近的JavaScript版本定义了字符串值的一些方法和属性(还有一个额外的属性,属于静态String对象,静态String对象一般出现在浏览器窗口的内容中),字符串方法的语法和其他对象方法相同:stringObjet.method()引用的stringObject部分可以是任何求值为字符串的表达式,包括字符串文本,含有字符串的变量以及返回字符串值的涵数或方法,还有其他属性.下面几个调用toUpperCase()方法的例子都是正确的:“george burns”.toUpperCase()yourName.toUpperCase()/yourName是包含字符串的变量mpt(“Enter your name”,”).toUpperCase()document.forms0.entry.value.toUpperCase()/enter is a text field object要记住的一个重要概念是调用字符串方法并不改变String对象,这个对象是引用的一部分,方法返回的值可以作为其他方法或涵数的参数或将它赋给一个变量.要将字符串变量的内容设置为方法的结果,必须使用赋值运算符,如:yourName = yourName.toUpperCase();/现在变量都是大写的Length字符串属性中经常使用的是length,就像读取其他对象的length属性一样,可以读取字符串的string.length属性来得到字符串的长度.长度值表示原因字符串中包含的字符数的整数值.空格和符号也作为字符,任何嵌入字符串内的反斜线特殊符号(包括换行符的制表符)作为一个字符.例如:“Lincoln”.length/result=7“Four score”.length/result=10“Onentwo”.length/result=7“”.length/result=0在循环处理字符串操作时经常会使用length属性.Prototype与赋值为字符串值的简单变量相比,new String(“string Value”)构造涵数定义的string对象更为强大.不必在脚本中为每个字符串创建string对象,但若发现变量的字符串出错时,可以很方便地使用这些对象.当试图在其他窗口或框架中将字符串信息保存为脚本变量时,这各情况偶尔会发生.使用string对象构造函数,可以保证字符串值在需要时被其他框架使用.另外,可以在文档中给string 对象分配原型属性和方法,prototype(原型)是指一个属性或方法,当增加该原型项后,它会成为任何新创建对象的属性和方法.例如对于字符串,可以定义新的方法来将字符串转换为新的还没有被JavaScript脚本String对象定义的HTML字体标记类型.解析方法String.charAt(index)如果知道字符串的位置,可以使用string.charAt()方法从字符串中读取单个字符.对于这种方法,可以在字符串中指定一个索引值作为方法的参数.字符串的首字符索引是0,要得到字符串的最后一个字符,需要使用多个字符串方法:myString.charAt(myString.length-1)若脚本需要得到多个字符,使用string.substring()方法.使用string.substring()从字符串中提取单个字符是一个常见的错误,在这种情况下string.charAt()方法更有效.相关主题: string.lastIndexOf(),string.indexOf(),string.substring()方法.String.concat(string2)JavaScript的+=运算符提供一种方便的方式用于连接字符串.但是较新的浏览器使用string对象方法来完成同样的功能,基本字符串(向其添加字

温馨提示

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

评论

0/150

提交评论