20世纪90年代中期,当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表 单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的 却是一条告诉你忘记填写一个必要的字段。
那时正处于技术革新最前沿的 Netscape,开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。当时工作于 Netscape 的 Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言。
当时Netscape和SUN公司有合作关系,Netscape 与 Sun 及时完成 LiveScript 实现。就在 Netscape Navigator 2.0 即将正式发 布前,Netscape 将其更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从 此变成了因特网的必备组件。
html/css/javascript之间的关系是怎样的呢?首先它们都可以采用普通的文本编辑器开发,然后使用浏览器软件打开并解释执行; html是一种超文本标记语言,主要是做页面展示,W3C制定了html规范与标准;css是一种层叠样式表语言,主要用来辅助修饰html, 让html网页看起来更加的丰富与漂亮;javascript是一种编程语言,它可以用来操作html中的节点以及css样式,进而达到网页的动态效 果,增强网页与用户的交互度。
1.2 JavaScript和Java
JavaScript是网景公司的布兰登艾奇开发的,Java是SUN公司詹姆斯高斯林带领团队开发的,JavaScript程序被内置在浏览器软件当 中的JavaScript解释器解释执行,而Java语言必须运行在Java虚拟机当中,所以JavaScript和Java没有任何关系。只是名字当中都带有 Java字眼,这也许只是一种市场营销策略。
1.3 JS和JSP
JavaScript被程序员简称为JS,运行在浏览器客户端当中;JavaServer Pages简称为JSP,是一种基于Java语言实现的服务器端页面, JSP属于Java语言,运行在Java虚拟机当中。
1.4 JavaScript语言特点
1.4.1 基于对象的编程语言
JavaScript是一种基于对象的编程语言而不能说是面向对象的编程语言,因为对象性的特征在JavaScript中并不像Java语言中那样纯正。 在JavaScript中有内置的对象,同时用户也可以创建并使用自己的对象。
1.4.2 弱类型语言
JavaScript编程语言没有编译阶段,文本编辑器开发完毕之后,直接使用浏览器打开即可解释执行,所以JavaScript中的变量在定义的 时候不需要指定数据类型,并且变量赋值的时候可以随意赋值,具体赋值的时候,值决定变量的数据类型。JavaScript在变量约束方面非 常弱,所以称为弱类型语言。Java语言存在编译阶段,在Java语言当中声明变量i为int类型,那么变量i只能接收int类型的字面值,如果 字面值的数据类型和变量的数据类型不同,程序是无法编译通过的,并且从int类型的变量i开始声明到最终程序执行结束,i变量的数据类 型永远都是int类型,占用4个字节,像Java这种对变量约束较强的编程语言被称为强类型编程语言。
1.4.3 解释执行的脚本语言
JavaScript是一种脚本语言,脚本语言是一种解释性的语言,以普通文本形式保存,不需要编译生成目标程序,可以直接用文本编辑器 打开查看。它不象cc++等可以编译成二进制代码以可执行文件的形式存在。JavaScript脚本语言可直接使用JavaScript解释器解释执行, 可能在解释的过程当中进行编译。
1.4.4 简单性
JavaScript基于Java的基本语法和语句流程,而Java是从C++语言发展而来,因此有过C语言开发经验的人员学习JavaScript十分容易。 此外,JavaScript是一种弱类型语言,其变量并没有严格的数据类型,免去了许多麻烦。
1.4.5 动态性
JavaScript是基于事件驱动的,所谓事件驱动就是触发一定的操作而引起某些动作。例如,鼠标单击按钮,页面加载完毕等等这些都是 事件。可以根据不同的事件创建相应的响应代码,这样就可以实现和用户的动态交互。
1.4.6 平台无关性
前面提到JavaScript代码在浏览器中解释执行,并没有利用具体平台的特性,所以只要有支持JavaScript的浏览器,无论在什么平台上 代码都能得到执行。开发人员在编写JavaScript脚本过程中就无需考虑具体平台的限制。只需要考虑浏览器兼容问题即可。
1.4.7 安全性
JavaScript是安全的,其不允许访问本地硬盘,也不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实 现信息浏览或动态交互。从而有效地防止数据的丢失和破坏。
1.5 JavaScript组成
1.5.1 ECMAScript
Netscape(网景)公司推出JavaScript不久,不甘落后的微软也推出了微软版的JavaScript-JScript,微软主要将其用于自己的浏览 器Internet Explorer。最初两家公司各自为政,分别执行自己的标准。那个时候的web程序员是很痛苦的,通常需要将相同的功能编写两 份不同语法的程序。
1999年,欧洲计算机协会(ECMA)依据JavaScript制定了ECMAScript的ECMA-262规范,ECMAScript成为JavaScript的标准。之 后两家公司都遵循了该规范,所以JavaScript和Jscript大部分是相同的,但也有小部分不同之处。
1.5.2 DOM
Document Object Model(文档对象模型),在JavaScript当中,把html文档当做一棵树,这棵树有一个根节点, 根节点下有很多子节点,每一个节点都可以看做是一个DOM对象,JavaScript通过操作DOM对象完成重构整个HTML文档、添加、移除、 改变或重排页面上的项目。从而达到网页动态效果,提高与用户的交互度。
JavaScript对DOM元素的操作又可以称为“html dom编程”。HTML DOM是HTML Document Object Model(文档对象模型)的缩 写,HTML DOM则是专门适用于HTML/XHTML的文档对象模型。熟悉软件开发的人员可以将HTML DOM理解为网页的API。它将网页中 的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。 例如Javascript就可以利用HTML DOM动态地修 改网页。
根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了 Netscape的JavaScript和 Microsoft的JavaScript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、 脚本和表现层对象。
1.5.3 BOM
Browser Object Model(浏览器对象模型),使JavaScript能够与浏览器进行“对话”,获取浏览器信息,操作浏览器。虽然W3C并没 有对BOM作出规范,但是所有浏览器都支持BOM,有一些事实上的标准。
1.6 BOM和DOM之间的关系
1.7 主流的浏览器
JavaScript脚本语言最终被浏览器当中的JS解释器解释执行,所以不同的浏览器执行相同的JS代码可能结果不尽相同,所以对于 WEB前端开发人员来说,解决浏览器兼容问题是一件很头疼的事情。通常一个WEB前端开发人员需要在自己的电脑中安装不同厂商 的浏览器,有可能相同厂商的浏览器也需要安装不同的版本。下面我们来看一看世界主流的5大浏览器都有谁?
左上角位置:谷歌公司的Chrome浏览器。
左下角位置:safari浏览器,苹果公司旗下浏览器。
右上角位置:微软公司的IE浏览器。
右下角位置:FireFox浏览器,简称FF浏览器,mozilla公司旗下浏览器
中间位置:opera浏览器,挪威厂商opera旗下浏览器。
我们在讲课的过程中安装的浏览器有:FF/Chrome/IE。
1.8 JavaScript开发工具
1.8.1 文本编辑器EditPlus
我们讲课的过程中,第一天的知识点采用普通的文本编辑器开发,这种开发方式还是比较适合JavaScript初学者的。建议初学 者开始的时候使用文本编辑器。
1.8.2 集成开发工具WebStorm
在实际的Web前端开发过程中,为了提高开发效率,可以借助某些集成开发环境,例如Web前端开发利器:WebStorm,这个名 字就够气派的吧:Web风暴。该集成开发工具是Intellij IDEA开发工具中的一个插件,Intellij IDEA开发工具是一个非常棒的Java开发 环境。我们在后期的课程中将使用WebStorm进行开发。
使用WebStorm将会体验到丰富的JS代码提示功能。它不仅仅对JS代码提供了丰富了提示,包括HTML、CSS提示也是非常全面的。
1.9 JavaScript帮助文档
http://www.w3school.com.cn/ 全球最大的中文 Web 技术教程。
我们给大家提供的帮助文档是w3shool的离线帮助文档。