您的位置:首页 > Web前端 > JavaScript

Javascript入门指南

2010-12-21 15:10 176 查看

什么是JavaScript

首先,我们要知道的是,JavaScript和Java是完全不相关的,他们名字上的相似纯粹是(Netscape和Sun)一种行销策略。最开始叫LiveScript,后来才改成JavaScript。实际上JavaScript可以脚本化Java,这个大家有兴趣我们在之后了解一下。

最标准的解释就是,JavaScript是一种具有面向对象能力的、解释型的程序设计语言。在语法构成上JavaScript的核心语言与C、C++和JAVA相似。(都具有诸如if语句、for循环、while循环和加减乘除或与非运算符这样的程序结构。但是JavaScript有这些语言的相似之处也仅限于语法上的类同。)与之不同的是,JavaScript是一种松散类型语言。也就是说,它的变量不必具有一个明确的类型。

由于JS是一种解释型语言而不是编译型语言,它往往被认为是一种脚本语言,而不被看成是一种真正的编程语言,这种看法实际上就是在说,脚本语言是比较简单的,他们是非程序员所使用的编程语言。实际上,JS的松散类型确实对缺乏经验的技术人员很宽容。但是,在简单的外表之下,JS却是一种具有丰富功能的程序设计语言,它和其他所有语言一样复杂,甚至是更加复杂。如果一个程序员对JS没有扎实的理解,那么当他要用JS执行较复杂的任务时,就会发现整个过程困难重重啊!我现在就是这种困难重重的状态啊!

在哪用Javascript?

JavaScript是一种通用目的的编程语言,它的用途不局限于Web浏览器。JS设计用来嵌入其他任何的应用之中,并为应用提供脚本化能力。网景(Netscape)、微软(Microsoft),奥多比(Adobe)等等这些大公司都会将JS解释器嵌入自己的产品中,并将JS解释器以开源的方式来进行推广,其实大家平时都会接触到的Firefox界面逻辑就是由JavaScript完成的。

但对于今天的主题来说,我们主要关注的是Web浏览器。当把一个JS解释器嵌入Web浏览器时,就形成了客户端的脚本环境。在此环境中,JS核心通过对象得到拓展,这些对象允许脚本和用户交互,控制Web浏览器,以及修改出现在浏览器窗口中的文档内容。这种嵌入式版本JavaScript通常被称作客户端JavaScript,以强调脚本是由客户端计算机运行的而不是由Web服务器运行的

要理解客户端JS,必须理解Web浏览器所提供的编程环境。也就是JS在Web应用程序开发中扮演着怎样的角色。首先给大家看一下我理解中的客户端与服务器之间的关系:



我简单解释一下,我觉得,这一切都是由需求而引起的,用户想要得到信息,他有这个需求,那么他就可以通过浏览器,去获取他所需要的信息。那么这个信息是从哪里取得,我们可以知道,肯定是要有个存储信息的空间,就是数据库。或许,我们可以把这个数据库想象成一个事先搭建起来的图书馆,里面藏有各种各样宝贵的图书与资料。比如我们一位中国学者,想要阅览一本只在伦敦最大的学术图书馆大英图书馆内才有的古籍原本。那么,这位学者想要以一个怎样的方式去获取他想要的资料呢?他可以走着去,可以骑自行车去,坐公交也行啊但别赶上堵车,堵车的话这就不知道何年何月了,但就算是这样这也是一件很麻烦的事情。为什么网络自诞生以来到现在虽然只经历了几十年的岁月,却已经成为了现代社会不可缺少的事物了?就是因为它可以将信息成本降低,提高信息传输的速度与效率。那解决方案就是,将所有书籍的数据都存放在数据库里,提供获取数据的接口,搭建个服务器再开个站点,这样,通过网络连接,每天都会有成千上万的从世界各地的人们使用有着良好图形化体验的浏览器,来此获取数据里中的信息。当然,这可能不是免费的,但成本肯定比你中国英国来回折腾的要廉价的多,甚至是九牛之一毛。所以啊,商机由此而来,并在不断的衍化。

说远了。大家都知道,Web浏览器的主要任务是在一个窗口中显示HTML文档。在客户端JS中,表示HTML文档的是Document对象,Window对象代表显示该文档的窗口,它是客户端JS的一个关键对象,其他所有的客户端对象都通过这个对象去访问。
那这就是说,存在一个JS对象的层次,这个层次的根是一个Window对象。如图。
这个图中显示许多对象都继承了Document对象,它是一个树的结构。这种对象层次叫做文档对象模型(DOM,document object model),据说它很有趣,以后有时间的话我会给大家详细介绍一些这方面的内容。



这里简单的说一下我所理解的对象,对象是什么啊,在东北的话我们经常说自己的恋人是对象。可惜这里不是这个解释。标准的解释是说它是一个无序的属性集合,每个属性都有自己的名字和值。储存在对象中的已命名的值既可以是数字和字符串这样原始值,也可以是对象。举一个现实中的例子就是,这个宇宙的所有事物都是对象。书是对象,笔是对象,我是对象,咱们大家在一起也是个对象,MTIME时光网是个对象,中国是个对象,地球是个对象。为什么呢,因为咱们有各种属性啊,姓名性别年龄等,虽然这些都是以咱们的角度去看才会有意义。简单的说,这本书是个对象,那么它有什么属性呢,它有重量,它有内容,它有封面和封底,它有生产日期,咱们可以把它看做一个储存数据并可以读取的对象。那这支笔,哎,它有一个方法,这个方法叫绘画,它还有个生命周期,这笔里面的油水用尽了,这个对象绘画的方法就失效了,而这支笔在正常情况下已经失去了它存在的意义,应该被回收和销毁。那么现在,我,是一个对象,但对于我而言,我同时也是一个正在运行的线程,我调用我的具有兼容性的读取接口,去读取书的内容,存储到我的脑子。我再调用笔的绘画方法,在书的第一页上面写下“Hello Book!”。OK,这就是我调用这两个对象的过程。

用JS代码描述
var cj = new chenjian();//24年前创建
var aBook = new book(); //3年前创建
var aPen = new pen(); //1年前创建

//js片段
cj.look(aBook.content);
cj.use(aPen.draw,aBook.firstPage,"Hello Book!");

浏览器使用CSS样式表单来样式化的HTML结构的文本,HTML定义了内容,CSS提供了表现形式。如果运用得当,JS可以为内容及其表现形式增加行为。
再比较形象的去说,如果把每个人当作一个元素来看待的话,那我们在这个所会议厅内就可能已经成为了一个完整或不完整的页面了。而或许我们身上的每一个关节,每一处神经与骨骼,甚至是更加细微的子元素,子节点,一个Element。而我们的外表,甚至是我们所穿的不同颜色的衣服,那就是CSS所提供的表现形式。而JS则为我们每一个人增加了行为,拍手,看书,讲话,甚至是更加复杂的事情。

JS不仅能够控制HTML文档的内容,而且能够控制这些文档的行为。也就是说,当你在输入字段中输入了一个值或者单击了文档中的一幅图像,那JS程序就会以某种方式对此作出响应。JS是通过为文档定义事件句柄来实现这一点的。

下面我们来看一个例子,这是一个非常简单的HTML片段,其中含有一个响应按钮点击事件的事件句柄。

为什么要用Javascript?

JavaScript在Web浏览器中应用最为广泛。虽然JS并非是唯一的Web脚本化语言,但实际上它的唯一代替就是微软的Visual Basic Scripting Edition(VBScript),但它似乎只得到了IE的支持。所以用这种语言编写的脚本是不可移植的。有趣的是我在网上没有找到任何关于JS在浏览器使用的数据统计,在Web开发这一块儿上它似乎没有任何对手。

JavaScript的核心语言及其内建的数据类型都符合国际标准,他们跨实现的兼容性都很好。而跨浏览器的兼容性常常是客户端的JavaScript程序员所关心的一个重要问题,这是一件很让人不爽的事情,程序员所编写和部署的JS代码可能要在各种不同的浏览器版本中运行,例如IE、Firefox、Safari、Chrome、Opera,而这些浏览器又运行在各各种操作系统之上,Window、Linux、Mac OS。如果想确保Web应用程序在所有组合上都能运行的唯一方法就是在每一种组合中测试它们。这是个让人畏缩的任务,实际上,这种测试往往是在应用程序部署以后由用户来测试的。

JS的主要作用就是增强用户的浏览体验,使得信息的获取和传输更加容易。
例如
1.
创建图像翻滚这样的动态视觉效果,引导用户,并有助于页面导航。
2.
对一张表格的各列排序,从而使用户更容易找到所需的信息。
3.
隐藏某些内容,或者当用户想要深入了解该内容时,有选择性的展示某些细节。
4.
通过和Web服务器直接通信将浏览体验流程化,以便新的信息无需整个页面重载就能够显示出来。

怎么用Javascript?

研究JS最简单的方法就是编写简明的脚本。而客户端JS的好处之一是,要编写JS脚本,任何人只要有一个Web浏览器和一个简单的文本编辑器就构成了一个完整的开发环境。当然我们也可以使用有更多功能和更加复杂的专业性的编辑器,比如我现在所使用的速度比较快的UE,还有Aptana,Eclipse等等,在这里不再一一介绍。

把客户端JS代码嵌入HTML文档有很多方法:
放置在标记对<script>和</script>之间
放置在由<script>标记的src属性指定的外部文件中
放置在事件句柄中,该事件由onclick或onmouseover这样的HTML属性值决定。
在一个URL之中,这个URL使用特殊的JavaScript协议。

在这里我们推荐使用src指定外部文件,使用src的好处是
有助于内容和行为分离,从而简化了HTML文件,(使用它是无干扰的JS编程的基石)。
易于共享,JS文件可以由几个不同的HTML文件共享。使得代码更易于维护。
装载速度快,浏览器在第一次读取页面时通常会将JS文件缓存到本地,减少了二次打开页面时的延迟。

客户端的JavaScript实例

各种Debug工具 IE - IE Developer Toolbar,Firefox – Firebug ,
Chrome – console.
以上的实例不过是客户端JS的最简单的功能,JS在客户端真正的强大之处在于脚本能够访问HTML文档的内容。

谁用Javascript?

那还用问吗,肯定是对它感兴趣的人才会去用啊。不管做什么,都要对其抱有好奇心的态度去使用,去学习,才能得到真正的乐趣。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: