在没有JavaScript的年代,要想对用户输入的某个值进行验证,只能与服务器进行通信,在服务端验证值的有效性,再把结果传递到客户端。这样的操作无疑是非常低效的,尤其是在3G都没有的时代。想象一下,输入一次用户名密码,提交,等待几十秒,提示用户名不存在,修改之后再提交,等待几十秒,提示密码错误......
网页变得越来越复杂,功能越来越多,而表单的验证却需要耗费大量的时间,每一次的等待都在考验着用户的耐心。
为了解决这个问题,当时的一家大型计算机服务公司决定开发一门客户端脚本语言来处理这些简单的数据验证,这家公司就是网景。虽然它在本世纪初就被收购并解散了,但是在当时,网景公司还是计算机技术革新的引领者。
1995年,网景公司一名工程师布兰登开始开发JavaScript——当时它的名字是Mocha,后来几度更名并为了搭上Java的顺风车才最终更名为JavaScript。
JavaScript一经发布便引起了web开发者的强烈欢迎。然而作为竞争对手的微软公司也不甘示弱,开发了自己的JScript,那么问题来了,由于两者互不兼容,又没有一个具体的规范,那么到底应该听谁的呢?随着这个问题的日益严重,JavaScript不可避免的走上了标准化的道路。
1997年,JavaScript1.1作为草案被提交给欧洲计算机制造商协会(Ecma)。其第39技术委员会根据草案打造出了ECMA-262,也就是ECMAscript这个脚本语言标准。自此之后,各家浏览器均以其作为自己JavaScript的实现标准。
那么ECMAscript到底定义了些什么?它在基本的层面规范了以下部分:
- 语法
- 类型
- 语句
- 关键字、保留字
- 操作符
- 全局对象
要成为ECMAscript的实现,必须满足以下条件:
1.支持它描述的所有“类型、值、对象、属性、函数以及程序语法与定义”
2.支持Unicode字符标准
在之后的若干年内,ECMAscript又更新了几个版本,其中以2015年发布的第六版最广为人知,也就是我们熟悉的ES6,这个版本增加了许多重要特性。
虽然JavaScript和ECMAscript基本上可以认为是同义词,但实际上JavaScript还包括另外两部分,也就是DOM与BOM。
什么是DOM?
文档对象模型,是一个应用编程接口。通过创建文档树,可以动态的访问程序和脚本,更新其内容、结构和风格
什么是BOM?
浏览器对象模型,用于访问和操作浏览器的窗口。是唯一没有相关标准的JavaScript实现。