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有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。这些对象类型与基本类型相差不大,容易混淆。

    本文章借鉴了维基百科与阮一峰的网日志。