浅谈JavaScript

164 阅读4分钟

JavaScript的特点

JavaScript是一门基于原型、函数先行的语言,它支持面向对象编程、命令式编程、函数式编程,是一种高级的、解释性的语言。它提供语法来操控文本、数组、正则表达式等,不支持I/O,但是网络、图形、存储等内容可以通过它的宿主环境提供支持。JavaScript被世界上绝大多数网站所使用,也得到世界上所有主流浏览器的支持。

但是JavaScript并不是一门比较完美的编程语言,它存在很多设计缺陷,例如JavaScript的标准函数库很小、全局变量难以控制、数据类型的自动隐藏转换等,它是一种弱类型的编程语言,缺乏严谨的逻辑性,所以这些缺陷使得开发者在使用JavaScript的过程中很容易出错。那么JavaScript为什么还能发展得这么好呢?这得从历史发展的角度来看待它。

JavaScript的诞生

1994年,网景公司发布了历史上第一个比较成熟的网页浏览器,但是这个浏览器只能用来浏览,不能和用户进行任何互动行为,因此这时就急需一种网页脚本语言,来实现浏览器与用户之间的互动,于是,网景公司就聘用了程序师Brendan Eich,Brendan Eich的主要方向和兴趣是函数式编程,而当时sun公司大肆宣扬Java这种语言,网景公司为了跟上Java的热度,于是决定未来的网页脚本语言必须看上去与Java足够相似,但是比Java简单,能够使得非专业的网页作者也能很快上手。但是被指定为设计师的Brendan Eich对Java一点兴趣也没有,为了应付公司安排的任务,他仅仅用了十天时间就将JavaScript设计出来了。

JavaScript的设计缺陷

通过十天时间就设计出来的JavaScript只是为了解决一些简单的网页互动,并没有考虑太复杂的需求应用,由于Brendan Eich本人的特点,JavaScript同时结合了函数式编程和面向对象编程的特点,而在这之前没有任何设计先例可以参考,再加上当时网景公司和微软之间的斗争,导致Javascript在推出一年半之后,国际标准就问世了,因此设计缺陷还没有充分暴露就成了标准。所以JavaScript这门语言本身就具有很多设计缺陷。JavaScript的设计缺陷参考:阮一峰的文章《Javascript的10个设计缺陷》

JavaScript的兴起

2004年,谷歌发布Gmail在线网页,让用户和开发者眼前一亮,因为当时的人们认为网页只能用来看新闻和图片,紧跟着AJAX的应用,从此前端技术正式出现,而在此之前的网页开发都是由后端和设计师完成,到了2006年,jQuery发布,此后的十年里jQuery都大放异彩,直到IE发展不行了,jQuery才稍微没有那么火。2009年,Ryan基于V8创建了Node.js,2010年,Isaac基于Node.js写出了npm,同年,TJ受Sinatra启发,发布了Express.js,从此,前端工程师就可以在浏览器之外执行JS了,Node.js也快速风靡,JavaScript发展越来越好。

ECMAScript标准的制定

1997年6月,第一版ECMAScript发布。1999年12月,第三版ECMAScript发布,这个版本使用最广泛。第四版流产,由于当时浏览器上并不能实现或者不想实现新制定出来的第四版标准。2009年12月,第五版发布,因为IE浏览器的发展如日中天,因此第三版发布后经过了十年时间才发布了第五版。2015年6月,第六版发布,新的浏览器都支持这一版本。至此之后每年发布一版,版本号以年份命名,可见JavaScript发展很好。

注意区分JavaScript与ECMAScript有很大区别,ECMAScript是标准,而JavaScript是实现,纸上标准往往落后于浏览器,先实现,再写进标准。

其实一开始JavaScript就是一个玩具语言,但是JavaScript却是历史的选择,因为它在历史的每一次发展中都走对了风口。