Javascript客户端脚本的设计和应用

Javascript基本概念

  JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言,最初由Netscape公司创造出来,起名Live Script,它和Java的关系只有一个:名字比较像。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。(注意,如同VBScript一样,JavaScript一样有服务器端版本)

一、JavaScript的基本语法

  0、引言

  Javascript的语法基本上与Java一致,但是由于Javascript是一个弱类型的脚本语言,在程序编写的过程中会有一些不同。同时由于Javascript是基于对象的语言,注意不是面向对象的语言,所以它在对对象的支持上有一定缺陷,大家所熟悉的诸如对象继承,多态等面向对象语言所具有的基本特性在Javascript中只能通过一些变通手段来实现(通常比较复杂)。然而,弱类型语言也有其优点,那就是简单性,Javascript中类型转化是非常方便的(弱类型语言在代码中基本上表现为无类型),一个String通过一个简单的加减操作就可以转化为Int(相当于调用了Integer.ParseInt(String)),而且不会抛异常。Javascript作为一种解释性语言,还能使用在编译性语言C/C++、JAVA难以支持的eval语句。由于运行在沙箱中,Javascript运行时有很多的安全性限制。它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。 总体上来说,Javascript应该是优缺点兼备(辨证的说=])。
  作为学过JAVA的软院本科生来说,学习Javascript并不困难。Javascript不像HTML、CSS这种经验性很强的的领域,一旦大家入门之后,剩余阶段的Javascript相关的学习很可能就是查阅资料而已。在这里我希望我所写的内容能够起到抛砖引玉的作用,为大家打下基础。以下内容主要是Javascript的入门知识,我会从关键字开始描述,强调关键字是为了让大家对Javascript的语法有比较全面的认识,可能大家在今后的开发中可能一直用不到其中的某些关键字,但我认为大家有必要了解一下,同时请留意其中标出的注意事项。随后将是在页面中加入脚本的四种方法。在“Javascript客户端编程”中,我将提及浏览器文档(DOM)模型和事件(EVENT)模型,其中会有如何寻找对象以及安装事件处理器(事件处理映射)的详细解说。最后我将在“Javascript样例”中给出一段核心代码的注解和三个样例。“Javascript学习资料”中有一些有用的书籍名,电子参考资料和相关网址,请留意其中的推荐参考资料和MLParser的使用指南。大家的对Javascript问题我将会在FAQ中给出解答。
  第一次写,错误在所难免,恳请大家指正和谅解。

  1、VAR

  var i = 5;
  var j = "hello world";
  var k = document;
  for( var u = 0; ... ; ... ) { ... }
  function fun() { var v = document; ... }
  VAR的作用是声明变量,但是不通过VAR声明的变量也可以使用。
  在BLOCK块(用 { 和 } 或 (和 )括起来的的代码段)中用VAR声明的变量是局部变量,一旦出了BLOCK的范围(SCOPE),变量就会失效。例如在样例中的 u 和 v 变量,当程序流分别出了 FOR 和 FUNCTION 语句的范围之后 u 和 v 就成了未定义变量。
  其他情况下用VAR声明或者通过未声明直接使用的变量(解释器会隐式声明这些变量)都是全局变量。

  在同一个范围(SCOPE)中对同一个变量名不能用一次以上的VAR,即不可重复声明变量。
  不同范围(SCOPE)中声明的同名变量在Javascript中会相互隐藏,例如,有一个全局变量 variable,同时在程序段中还有一个局部变量 variable,那么你在程序中引用的变量实际上会是局部变量 variable 。

  一个变量在赋值之后,其类型就转化为所赋值的类型。
  从未声明过(包括赋值操作引发的隐式声明)的变量值为 undefined 类型也为 undefined 。

  变量的有效性是它的定义范围与定义语句出现的顺序无关。
  function test(){
    document.write(great) ;  // print "undefined"
    document.write(odd) ;   // print "javas" , not "undefined"
    var odd = "javas" ;
  }
  样例中虽然 odd 在 document.write 之后,但在程序被解释时 odd 就被初始化了,所以打印结果不是 "undefined" 而是odd被赋予的初始值。

  2、IF-ELSE

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjjfzp.html