JavaScript诞生于何处?
先从浏览器的诞生说起。
1993年,伊利诺伊大学厄巴纳-尚佩恩分校的国家超级电脑应用中心(NCSA)发表了NCSA Mosaic。
1994年,Mosaic Communications雇用了许多原来的NCSA Mosaic开发者用来开发Mosaic Netscape浏览器。该浏览器于同年更名为Netscape Navigator。
公司创始人认为浏览器的未来会更加动态,1995年,网景招募了布兰登·艾克。后来网景公司想发明一种与java配合使用的脚本语言,布兰登·艾克花了10天就设计出了原型,在1995年命名为JavaScript,并大获成功。
微软不久后推出了自己的JScript语言与网景竞争。当时并没有统一的JavaScript实现标准。
1996年,网景向ECMA(欧洲计算机制造商协会)提交了ECMAScript语言标准。JavaScript是浏览器基于ECMAScript标准的实现。
1997年,第一版ECMAScript发布。
1999年,第三版发布。
2004年,谷歌发布了Gmail,使得人们发现前端大有可为。
2006年,基于JavaScript的jQuery库发布。
2009年,第五版发布。
2015年,第六版发布。
JavaScript有哪些不足?
1 设计只用了十天,太仓促。没有考虑复杂应用的需要。
2 直到现在,Javascript仍然是世界上唯一使用Prototype继承模型的主要语言。这使得它没有设计先例可以参考。
3 标准化时间太早,缺陷还没有暴露就已经固化。
JavaScript的十个设计缺陷
1 不适合开发大型程序
2 标准库不够完善。
3 null和undefined的含义不同,但容易混淆
4 全局变量在所有模块中都可见,增加了程序的复杂性。
5 每句代码末尾都需要加上分号,但不加却不会报错,有时会导致难以发现的错误。
6 加号运算符,会有两种情况。一种是数字相加求和。另一种是合并成相连的字符串。
7 NaN有奇怪的特性。不如直接设计为解释器报错,不要NaN。
8 数组也是对象,所以有时候区分对象和数组很麻烦。
9 == 和 === 比较符不符合直觉。前者会自动转换数据类型,后者会完整比较,不能有一点儿区别。
10 Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。这些对象类型与基本类型相差不大,容易混淆。
本文章借鉴了维基百科与阮一峰的网日志。