那为什么人们不参考它的功能开发一门新语言而是一直对它修改呢?
不是有TypeScript吗?
老实说,JavaScript确实有很多问题,包括内存泄漏问题,他都美名曰闭包了。
所以你会发现,使用JavaScript,可以写出很奇葩的功能,你也会发现,脚本语言的代码居然可以写的这么难读。
说下JavaScript诞生史1995年4月,网景公司招聘了Brendan Eich
面试时是这样的(非真实场景)
网景面试官:Hi,听说你最喜欢函数式编程。
Eich:超爱的,别看Java面向对象现在火的很,那就是坨XX。
网景面试官:嗯,我们正好要找个程序员,和Scheme打交道,就你了。
一个月后是这样的(非真实场景)
网景:Hi,Eich
Eich:Hi,Boss
网景:听说你是大神,最近Java很火,听说面向对象很好,你写个类似的面向对象的语言,在网景浏览器上用吧
Eich:啥?听说都是不准的
网景:你是说你不是大神?
Eich:我不是说这个
网景:那就这么定了
Eich:(心中万XX马奔腾)
Eich心中的不满程度,不亚于读计算机专业出来做编程工作的你被亲戚叫去帮忙修理洗衣机。
10天后,JavaScript诞生,是的,Eich只用了10天,创造了一个面向对象的语言,然后里面最基础的是函数……什么情况?是的,你说它是面向对象,他可以继承,但是用原型的方法来继承,一条长长的prototype链,最终又指向了Fuction……
Eich应该只是为了完成任务而已,我想他一定很讨厌这个儿子。
竞争者但是网景在浏览器上使用上JavaScript后,一炮而红,红过Java。就这样,一个爹不疼娘不爱的孩子,却是社会上人人喜欢的小明星,你说这是不是很讽刺。
然后微软来了,抄袭JavaScript,弄了一个JScript,是的,其实你的问题很早以前已经有了,很多浏览器厂商已经参考JavaScript,开发了一堆自己的浏览器脚本语言,所以当时的网页经常是在这个浏览器可以运行的很绚,在另一个浏览器就挂了。
标准制定者慢慢的,ECMA国际看不下去了,制定了ECMAScript标准,然后和浏览器厂商说,你们得按我这个标准来开发脚本语言,不准备乱加规则,乱定标准。
所以题主说的JavaScript应该是按ECMAScript5的标准的。目前最流行的标准是ECMS6标准,这个标准的语言,统称为ES6,里面看起来就比较正常了,有模块,有类等,当然,最新的标准是ECMS2019。
如果按最新的标准来开发的话,妥妥一个高大上的语言,当然,现在微软和Google也出了自己的语言来代替,比如微软出的TypeScript,你可以理解为它是ES6的超集,很多开发者是直接用TypeScript来进行开发的,语法和C#差不多。
历史问题但是由于历史问题,我们必须把最新标准或用TypeScript开发的程序,编译成ES5标准,在浏览器上运行,这主要问题在于IE,当然,这是另一个传说了。
就像是Android系统这么烂,Google为啥不直接替换了?因为有个历史原因。JavaScript也是一样,历史总是让人不断的蛋疼。
总结人们没有改javascript,只是浏览器标准在不断的定制,浏览器厂商需要去匹配浏览器标准已经有语言替换了,比如微软公司的TypeScript,开发可以完全用它来开发,不过最终还是得编译成浏览器标准语言ECMA也会从TypeScript中吸取优质内容,做为标准Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有