JavaScript 的诞生
JavaScript的诞生
- 从网景到微软,从Firefox到IE,再到Chrome,网络公司的兴衰更迭也同样是浏览器的更新发展。JS应运而生!
- 1994年,网景公司发布了历史上第一个比较成熟的网络浏览器,但是,这个浏览器不具备与访问者互动的能力。网景公司急需一种使得浏览器可以与网页互动的网页脚本语言,
- 1995年,Java强势推出。
- 1995年4月,网景公司录用了系统程序员Brendan Eich。
- 1995年5月,网景公司做出决策,未来的网页脚本语言必须"看上去与Java足够相似",但是比Java简单,使得非专业的网页作者也能很快上手。
Brendan Eich 被指定为这种"简化版Java语言"的设计师。为了应付公司安排的任务,他借鉴了各种语言,只用10天时间就把Javascript设计出来了。
所以,Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。
由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。
Javascript的发展非常快,没有时间调整设计。
- 在1996年8月,微软公司强势介入,宣布推出自己的脚本语言Jscript;11月,为了压制微软,网景公司决定申请Javascript的国际标准;
- 1997年6月,第一个国际标准ECMA-262正式颁布。
也就是说,Javascript推出一年半之后,国际标准就问世了。设计缺陷还没有充分暴露就成了标准。
Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。目前,许多新项目大大扩展了它的用途,node.js使得Javascript可以用于后端的服务器编程,coffeeScript使你可以用python和ruby的语法,撰写Javascript。
JavaScript的10个缺陷:
- 不适合开发大型程序
- 非常小的标准库
- null和undefined
- 全局变量难以控制
- 自动插入行尾分号,易引起bug
- 加号运算符加剧了运算的复杂性
- NaN是一种数字,表示超出了解释器的极限。它有一些很奇怪的特性
- Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组,相当麻烦
- == 和 ===,==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
- 与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。