历史
那年,网景公司的目标是成为世界第一的浏览器。公司创始人认识到静态化的页面适应不了时代潮流,需要一个脚本语言来让网页拥有更多的可能性。
网景对于采用现有语言还是重新开发语言争论不休。随后,Java横空出世,网景打算把 Java 直接嵌入网页,后面发现 Java 对于网页来说太”重“了,不得不放弃。
网景招募了布兰登,也就是后来的 JavaScript 之父,由于当时的网景都是 Java 的信徒,布兰登被要求开发一个适用于网页的类 Java 脚本语言。
布兰登对 Java 不感兴趣,为了应付工作,仅十天就把 JavaScript 开发出来了。这是后来 JavaScript 饱受诟病的很重要的原因。
缺陷
JavaScript 是一个怪胎,它杂糅了包括 C,Java,Scheme,Self 等等语言的特性。又由于它的草率设计与网景公司为了抢占市场而过于早的将其标准化,JavaScript 一些令人奇怪的特点让人十分头疼。
这里说几个常见的坑
null 和 undefined
null 表示空,undefined 表示数据未定义,两者十分容易混淆。如无必要,勿增实体,没有必要设计两种意思十分相近的数据结构出来。
全局变量
var 一下,就是一个全局变量,不是覆盖别的变量就是被覆盖。这在后来的 ES6 中得到了解决。
动态变量
JavaScript 的变量类型很容易发生自动转换,过于灵活的特性不利于建造宏伟的建筑。
TypeScript 的设计解决了这一问题
最后
JavaScript 算不上一门很好的语言,他的历史也不算光彩。
随着 Chrome 的横空出世,JavaScript 得到了空前的发展,各种库和框架层出不穷。JavaScript 能有现在的地位,和历史潮流脱不了干系。