关于前端:JavaScript波澜起伏的一生

4次阅读

共计 3117 个字符,预计需要花费 8 分钟才能阅读完成。

JavaScript 俨然是热度最高的编程语言之一,作为前端开发在工作中总离不开写 JS,但有些疑难总在我脑海中:它与 Java 到底什么关系?所谓的 ES、TS 又是什么?当初就让咱们一起走进 JS 的前世今生吧。

LiveScript

说到 JavaScript 的起源,就不得不和 web 的倒退分割到一块,起初因为网页的大小和复杂性一直晋升,在频繁的表单验证之间存在的数据交换过程只会带来累赘,于是美国网景公司 (Netscape) 开始着手开发一种浏览器上的脚本语言,用于解决简略的验证,它就是 LiveScript,但这并不是最终公布时的正式名称。

Java’s Script ?

咱们都晓得 Java 与 JavaScript 语言自身并无关系,网上广泛说法是 JavaScript 为了蹭 Java 的热度而如此命名,但这种说法有失偏颇,因为过后 Java 也是才刚刚推出的编程语言,其火爆也应该是后话了。

实际上因为 Sun 公司所大肆宣传的“一次编写,到处运行”对网景公司影响很大(想想这种客户端脚本语言不也是一样只有有浏览器环境就能够到处运行吗,比方当初风行的利用前端技术进行跨终端开发,我认为实质很靠近,不论你是什么手机,平板,电脑,其余终端设备,只有有浏览器内核就行),于是两家公司建设了联盟,LiveScript 改名为 JavaScript,起初 Java 的确越来越火,网景毕竟次要还是做浏览器,当然很违心让 JavaScript 搭上这趟逆风车,这个商标牵强附会也就归属 Sun 公司了。

这个仿佛要倒退成为”简化版 Java“的网页脚本语言由过后网景公司的布兰登·艾奇负责编写,但这位程序员偏偏不是 Java 的 Fans,所以简直是以应酬工作的心态,仅用了 10 天就把第一版 JavaScript 设计实现,谁又能想到现在 JS 会大火,这也算是导致了 JS 自身存在一些问题受开发者诟病的起因之一,但话说回来,过后也只是以“简略的脚本语言”为指标设计进去的编程语言而已,这可能就是所谓的 伟大事业往往都有一个渺小的开始吧。

所有才刚刚开始

说到这里咱们曾经大抵理解,JavaScript 就是网景公司与 Sun 公司联结推广的一款客户端脚本语言,目标解决网页中的简略验证等需要,它由网景公司的一名程序员设计。但咱们看到 JS 倒退到现在曾经跟一开始天差地别,时代在不停推动着 JS,那么其中是谁来主导 JS 前行呢?是其发行者网景公司吗?遗憾的是网景公司其实在 2003 年就已遣散,说到底网景公司次要的产品是旗下一款浏览器,而咱们当初并未看到过网景浏览器,因为它在第一次浏览器大战中就齐全败给了微软旗下的 IE,在过后 IE 占据了整个浏览器市场份额的 96%,网景没有丝毫扭转机会。没错,尽管 JavaScript 取得了微小的胜利,可网景公司最终却走向了失败。

JScript? CEnvi?

在网景公司推出 JavaScript 不久后,微软在 IE3 浏览器中也退出了名为 JScript 的 JavaScript 实现,与 JScript 相似的还有 CEnvi,这就意味着不同的浏览器厂商将会实现不同的脚本语言,JavaScript 的标准化问题被提上了议事日程。

过后网景公司将 JavaScript1.1 提交由国际标准化组织 ECMA 制订对立标准,而后 ECMA 组织制订了 JavaScript 的对立标准,命名为 ECMAScript,倒退到当初,始终由各个互联网行业前沿的公司一起参加标准制订,而所有浏览器将遵循这套标准对立去实现。

ECMAScript 序

网景公司早已不存在,而当初一起推广 JavaScript 的 Sun 公司呢?起初被甲骨文公司收买合并,甲骨文公司失去了 Java 的所有权,所以 JavaScript 也变成了甲骨文公司的注册商标,这就很难堪了,不晓得什么时候起,咱们写的“JavaScript”已不再是本来的 JavaScript,这种浏览器脚本语言其实基本上并没有一个精确的名字(比方微软就更心愿它叫做 JScript),或者说它以前叫做过 JavaScript,但当初还能说是吗?而大家还是习惯叫它 JavaScript,可能是约定俗成的存在。就如同咱们老说 H5 开发,大家就晓得是指 HTML5 开发,其实 HTML 原本就是简写了,H5 这种说法显著是不迷信的,要这样我说 C3 开发你能联想到我说的是 CSS3 开发吗?没这种说法吧,然而说 H5 开发就能够,咱们很多人都不会意识到有什么不对,因为习惯了。

所以我的集体了解是,咱们当初写的所谓的“JS”,并不能齐全称之为 ES,咱们晓得了 ECMAScript 是 JavaScript 的标准,而“JS”是由浏览器去实现的,各个浏览器尽管都遵循 ES 标准,但实现的水平、所反对的状况还是各不一样,标准只有一套,浏览器却不止一种,究竟无奈天下大同。遇到同样一段“JS”代码,在谷歌浏览器中完满运行,在 IE 下面就各种谬误,咱们认为是你写的代码有问题,这种问题咱们称之为“兼容性问题”。而 web 网页开发中解决兼容性问题也成为了一项重要的工作内容。

ECMAScript6

对于 JavaScript 和 ECMAScript 到这里根本就讲完了,总之 JavaScript(或简称 JS)是一个历史遗留下来的统称,因为它的这段发展史非凡,跟其余编程语言不同,它本身的版本更迭应该以 ECMAScript 这个标准为主。而其中数 ES6(ECMAScript 第六版)最为磨难,从 ES3 之后存在的一些激进的想法,始终到 ES5 都未能齐全实现,最初在 ES6 中才批改结束公布,所以也说 ES6 是革命性的一版,尔后 JS 进入了一个高速倒退的阶段,很多代码在低版本浏览器未必反对运行或者并未实现,所以当初前端开发中常常须要应用到一些编译工具,将代码最终编译成浏览器均可辨认的代码,这里不做过多赘述。

前端编程倒退至今,始终在躲避以往简单低效等问题,“面向浏览器编程”这一个性兴许始终是种制约,但毫无疑问总体仍然在向新的编程体验一直迈进,路漫漫其修远兮。

TypeScript – 面向未来开发

如果你对 TypeScript 感到生疏,那应该是还没有应用过 Angular,Angular 是由谷歌开发的一款前端框架,是目前较为风行的框架之一,其自身从 2.0 版本开始应用 TypeScript 编写,而 TypeScript 来头也不小,是由微软开发的一套语言,扩大了 JavaScript 的语法和个性,同时也反对 ES6 标准,TS+Angular 的组合感觉非常强悍,毕竟背地是微软和谷歌两大公司,但同时这套组合也让我感觉到学习老本绝对平缓,比方绝对于 vue 来说。

当然 TypeScript 因为是 JS 的超集所以无奈间接运行于浏览器的,也是须要编译,TS 有专门的编译器。

题外:JQuery – 刀耕火种的前端时代

JQuery 自身是十分优良的 JS 框架,在大量传统 JS 框架类库中最具代表性,甚至因为太过风行,很多初学者连 JS 都没搞明确是啥就开始先学习 JQ,产生这种景象的起因,是 Jquery 框架太过风行导致的先入为主,而究其基本,还是因为 JavaScript 自身倒退的起因,后面提到 JavaScript 在开始设计时就没思考那么多,而不同的浏览器又有不同的实现,导致各种兼容问题,能够说 JS 自身就是问题重重,想想大好工夫竟然花在各种测试兼容下面是有多节约,所以 Jq 为代表的这些框架类库天然就崛起了,关上 Jq 在 github 上的主页,咱们能够看到 6k+commit,共 270+ 开发者为其奉献代码,简单的事件和麻烦的兼容就交给框架去解决,加上 Jq 自身的设计就十分优良,所以能在很长一段时间火爆。或者懒才是推动倒退的源泉,真正的懒人总会去思考怎么把简单的问题简单化,编程的魅力也尽在其中。

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0