APP下载

浅谈关于JavaScript脚本语言的学习

2013-11-15徐秀勤

电子测试 2013年14期

徐秀勤

(南京信息职业技术学院,210023)

0 绪论

当今世界,人们通过访问互联网上各Web站点可以触摸到世界的各个角落,访问到各种信息。如浏览新闻、观看电影、听音乐、网上购物等等。人们利用Web工作、学习和生活,Web成为了人们生活的重要组成部分。由此Web编程技术也随之高速发展起来。与此想应的各大院校计算机相关专业都开设了Web编程技术的课程,其中之一就是JavaScript脚本语言,在教学过程中发现学生很难理解,不容易学好。如果学生在学习之前能对JavaScript脚本语言有所了解,相信对学生学习会有所帮助。

1 JavaScript脚本语言的基本特点

JavaScript脚本语言是一种由Netscape的LiveScript发展而来的原型化继承的基于对象和事件驱动并具有相对安全性的动态类型的客户端脚本语言,主要目的是为客户提供更流畅的浏览效果。JavaScript用在HTML文档中编写客户端脚本代码,从而实现客户端Web网页内容动态变化。当用户在客户端浏览器中打开网页时,浏览器会执行该网页内嵌或导入的JavaScript代码,用户可以通过交互式更改网页的内容和外观,实现了仅用HTML和CSS技术不能实现的动态效果。

JavaScript脚本语言概括起来有如下几个特点:

(1)简单性:JavaScript是一种解释性语言,不需要提前进行编译,在程序运行过程中由浏览器边解释边执行,因此不需要额外的运行环境。

(2)跨平台:由于JavaScript脚本代码只依赖于浏览器,所以与系统环境无关,无论在Windows操作系统下还是其他操作系统下,只要浏览器支持JavaScript脚本,即可正确执行包含JavaScript的HTML文档。

(3)基于对象和事件驱动:JavaScript脚本语言自身提供了对象,如Math对象、String对象、Date对象等等,还可使用浏览器对象,如window对象、document对象等,不需要创建类就直接可以使用或通过创建一个新对象来设置该对象的属性、调用该对象的方法,以完成所需要的功能。另外JavaScript脚本对于用户操作的响应是采用事件驱动的方式进行的。如在网页运行过程中,如果用户进行了鼠标单击、鼠标移动、按下键盘等操作都可以被视为事件,在JavaScript中可以根据需要编写相应的事件响应程序,当浏览器一旦监测到事件发生了,则就可以执行相应的事件处理程序。

(4)节省与服务器的交互时间:JavaScript脚本是动态的,可以直接对用户操作做出响应,而不需要经过Web服务器程序处理。例如:假若用户访问的网页要求用户填写表单输入若干信息,其中某些信息不能为空或是必须满足一定条件,如用户名只能是中文、邮政编码只能输入数字等,那么客户端通过编写JavaScript脚本就能完成这些信息的验证工作,而不用向Web服务器发出请求验证的消息,由此大大节约了客户端与服务器之间的交互时间。即使必须要调用服务器端验证该用户是否为合法用户,也可以利用Ajax技术以异步请求的方式把用户输入的通过初步验证的信息提交给服务器进行处理,也大大减轻了服务器的开销。

2 JavaScript脚本语言基本组成

一个完整的JavaScript脚本语言是由以下3个不同部分组成的:核心(ECMAScript)、文档对象模型(Document Object Model,简称 DOM)、浏览器对象模型(Browser Object Model,简称BOM),如右图所示。

核心(ECMAScript):即JavaScript脚本的基本语法、变量、运算符、表达式、基本语句、函数及内置对象等,关键词及语法跟C、C++、Java等语言基本相似,但也不完全相同。

BOM:嵌入HTML代码中的JavaScript脚本是在浏览器中加载网页时运行的,为了实现与浏览器窗口的交互,还需要使用浏览器对象(Brower Object Model,BOM )。BOM对象主要包括Window对象、document对象、history对象、location对象等。通过BOM对象可以操作浏览器窗口、处理文档、还可以获取客户端浏览器信息及屏幕的分辨率详细信息等。

DOM:DOM是Document Object Model的简称,即文档对象模型,是W3C组织推荐的处理可扩展置标语言的标准编程接口。DOM是上世纪90年代后期微软与Netscape的“浏览器大战”的产物,双方为了在JavaScript与JScript一决生死,双方于是大规模的赋予浏览器强大的功能,DOM即是当时酝酿出来的杰作。通过文档对象可以操作文档中的每一个节点,从而实现网页内容的动态变化。

3 与一般程序设计语言不同之处

JavaScript脚本语言是解释性的、弱类型的动态Web编程技术,它与一般的程序设计语言如C、C++、Java等有相似之处但,也有不同之处,如变量的弱类型、函数使用及对象使用。不少学生会互相混淆,在学习的过程中学生应该充分注意到这些差异。

3.1 弱类型

JavaScript脚本语言基本数据类型只有:number、string、boolean和两个特殊类型undefined(未定义类型)和null(空值)。用var关键词变量定义时,并不指定类型,它里面可以存放任意类型的数据,赋值后变量的类型才被决定。同一个变量可以给它赋不同类型的数值,它的类型也随之改变,但不建议这样使用变量。

3.2 函数使用

在JavaScript脚本语言中,不仅可以通过定义函数、调用函数来实现特定的功能,还可以定义一个匿名函数、嵌套定义函数,并且可以将整个函数作为函数参数。

使用匿名函数可以有效保证在页面上写入JavaScript代码,而不会造成全局变量的污染。这在给一个不是很熟悉的页面增加JavaScript代码时非常有效,也很优美。

使用嵌套函数的目的是可以把一个函数的可见性封装在另一个函数中,使得内部函数作为外层全局函数的私有函数,从而确保内部函数的安全性。

使用函数作为参数,可以不需要根据不同的函数进行处理,从而极大方便不同函数的调用。

3.3 对象使用

JavaScript脚本语言中没有正式的类,但有各种对象可供用户使用。如本地对象、内置对象、宿主对象和用户自定义对象。

本地对象有 Number、String、Boolean、Array、Date、Function、Object等,它们是由JavaScript实现提供,在脚本中需要用new运算符来创建,如“var oD1=new Date();”,这条语句定义了一个oD1日期型对象,其初始值是系统当前日期和时间,通过这个对象可以访问其方法来设置或取得相关日期信息,如年、月、日、星期几、时、分、秒等。如 oD1.getYear(),可以得到oD1这个日期对象的4位数的年份。

内置对象有Global对象和Math对象。这两个对象不能用new运算符创建,而是直接使用。其中Global对象在访问其属性与方法时时不需要冠以“Global.”,否则会出错。如parseInt()、eval()等;而Math对象使用时则应该冠以“Math.”,如 Math.rand()、Math.floor()等。

宿主对象是由JavaScript实现时的运行环境(如浏览器)提供的,如上面介绍的BOM对象和DOM对象都是宿主对象。

用户自定义对象:在JavaScript脚本语言中使用各种预定义对象只是其功能的一部分,该语言还允许用户根据需要创建自己的类和对象,从而实现更加强大的功能。

4 开发环境与调试技巧

JavaScript脚本是嵌入在HTML文档中的,然后是通过浏览器来解释执行的,非常简单,因此对开发环境要求很低。HTML文档是文本文件,记事本可以完成编辑工作,在文件保存时取扩展名为.html即可,然后双击该文件即可浏览,唯一的缺点是所有代码必须一一输入。如果利用Dreamweaver或是其他开发工具,则可以方便许多。在输入代码过程中会智能出现许多匹配的标签供选择,大大提高速度的同时也降低了错误率。

C、C++、JavaScript等语言的开发工具,在代码编写过程中如果有语法错误则会马上标记出来,提醒用户立即修改,但Dreamweaver开发工具则无此功能。HTML文档如果页面不能正常访问,用户必须从头开始逐条检查代码进行修改,如果想知道哪条代码出现了问题,则可以通过修改“Internet选项”设置来处理。具体步骤是:打开IE浏览器打开“工具”菜单选择“Internet选项”再选择“高级”选项卡在“设置”栏选中“安全”栏目下的“显示每个脚本错误的通知”。通过这样的设置,网页不能正常浏览时,会提示详细的错误信息,告诉用户哪一条代码有问题,这样就可以大大提高编程 效率。

5 总结

在开始学习JavaScript脚本语言之前,如果能了解以上几点,并在学习的过程中时时同其他已经学习过语言进行比较,对于不同之处加以特别注意,另外多编程,多练习,同时有效利用Internet选项设置,则可以大大提高学习的效率和学习效果。