资讯专栏INFORMATION COLUMN

JavaScript和它父亲的故事

CrazyCodes / 3313人阅读

摘要:本次文章内容来自高级程序设计,本书可以说在学习的路上一直被奉为经典之作。因为时间比较赶所以和公司就合作建立了一个联盟。因为没有规则及约定,两边开发的功能及命名都有自己的特色,兼容起来相当的麻烦,业界担心度日益加剧,的标准化被提上了议事日程。

附赠脱单秘籍:了解一些JavaScript的历史,聊天的时候说不好可以获得更多程序员小妹子的崇拜的哟~ ๑乛◡乛๑~

阅读本文可以让你更好的理解什么是ECMAScript。

本次文章内容来自:《JavaScript高级程序设计》,本书可以说在学习JavaScript的路上一直被奉为经典之作。
但是因为纸质书相对厚重,不是很方便,并且内容较多,小伙伴可能望而却步,这次专门准备了红宝书系列,从每一章中摘出内容来分享给大家,并且额外做一些扩展~走过路过不要错过啦~

JavaScript的诞生

JavaScript诞生于1995年,诞生的目的主要是为了负责一些输入验证的操作(例如:我们经常验证表单中的输入是否符合要求)。在1995年之前,表单验证的操作方法是必须把表单数据发送至服务器,才能确定用户是否没有填写某个必须要填写的内容,中间耗费的时间可以想象。如果我是使用者可能着急的想拍桌子,这种感觉不亚于一张一直加载不出来的图片,像这类抓狂的用户体验必须得到改变!
于是,Netscape Navigator(网景)就希望通过JavaScript来解决这个问题。

后来随着时代进步,JavaScript也在快速发展,时至今日,我们可以通过使用JavaScript来和浏览器以及内容之间进行几乎所有方面的交互(例如:获取window对象、innerHTML内容、各种节点等操作),它已经成为一门功能全面的编程语言。

JavaScript作者

说起JavaScript的作者,就是一个很传奇的人物了。他的名字叫Brendan Eich(布兰登·艾奇),上一张照片膜拜大神~

标准的程序员的样子呢 罒ω罒

大神就职于Netscape公司,公司希望发布一种名为LiveScript脚本语言来处理上面说到的表单的问题(为什么不是JavaScript呢~继续往下看)。
因为时间比较赶所以Netscape和Sun公司就合作建立了一个联盟。
这时候就不得夸一夸他们的推广策略了
蹭热度!!

这个词对于我们现在应该是一个很熟悉的词,经常看到某个明星蹭热度。但是这里可不是某个明星,而是大名鼎鼎的后端语言Java。
Java是由Sun公司开发的技术,而Netscape公司的管理层又都是很喜欢Java的,当时的Java还是热度很高的,于是经过多方考量,最终将LiveScript更改为JavaScript。

此处不得不来一波小扩展~
Brendan Eich当时是34岁哦,所以大家在学习前端的时候,不要总是担心~哎呀,我会不会年纪太大了,三十几岁还适合做前端么?考虑这些不如好好考虑一下防脱发技巧。≖‿≖✧

大神本人的主要发展方向是函数式编程,Netscape公司在招聘他的时候,是希望研究Scheme语言作为网页脚本语言的可能性,进公司以后的大神也以为以后会和Scheme语言打交道,但是真香定律怎么会放过他呢!

一个月之后,Netscape公司做出了最终的决策:未来的网页脚本语言必须"看上去与Java足够相似",但是要比Java简单,而大神就是这个“简化版Java”的设计师。

但是大神本人对于Java其实一点兴趣也没有。为了应付公司的安排(大神式敷衍 o‿≖),他用了10天的时间就把JavaScript设计出来了。

大神不愧是大神!仅仅用了10天时间,就设计完了。不过这样短时间的敷衍设计也造成了很多的问题,语言的细节考虑的并不够严谨,导致后来很长一段时间JavaScript写的程序混乱不堪。

此次设计中借鉴了:

C语言的基本语法

Java语言的数据类型和内存管理

Scheme语言,将函数提升到"第一等公民"(first class)的地位

Self语言,使用基于原型(prototype)的继承机制

我想如果不是Netscape公司最终决定出一个“简化版Java”,可能我们现在学习的JavaScript又是另外一种样子吧~

痛苦不堪的岁月

在JavaScript诞生之后,受到了很多人的关注,毕竟在当时这样明显的用户体验的提升还是很受到大家欢迎的~

好的创新大家都会喜欢,于是微软就在自己家的产品IE中同样加入了JavaScript,不过和Netscape公司的不一样,他们的是JScript。于是乎,当时的程序员就不得不面临一个问题:兼容!相信大家都很讨厌兼容这个东西,面试的时候如果遇到面试官说:“你需要兼容IE8以下”,我想很多小伙伴可能扭头就走。

因为没有规则及约定,两边开发的功能及命名都有自己的特色,兼容起来相当的麻烦,业界担心度日益加剧,JavaScript的标准化被提上了议事日程。

1997年,以JavaScript 1.1 为蓝本的建议提交给了欧洲计算机协会商协会,协会指定39号技术委员会负责“把JavaScript标准化,要通用,并且可以跨平台使用”,这个39号委员会的成员来自Netscape、Sun、微软及其他关注脚本语言的公司,经过数月完成了ECMA-262——定义一种名为ECMAScript的新脚本语言标准(针对JavaScript的语法、语义等进行约束制定出来的标准)。

自此以后,浏览器开发商就致力于将ECMAScript作为各自JavaScript实现的基础,从而解决了上面混乱不堪的兼容问题,才有了我们现在见到的JavaScript。

这就是JavaScript的诞生,下一期我会给大家讲一下JavaScript中的三个核心部分哟~,感兴趣的话记得要关注我哦 ✿◡‿◡

最后我们在来看下,学习JavaScript找工作到底可以得到什么样的回报,上图~

如果你下定决心走在前端的路上,作为一个老程序员,我有一些忠告 (●’◡’●)ノ

那么下面的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98982.html

相关文章

  • 一个故事讲懂vue父子组件传值

    摘要:老王用笔在纸上写了好多内容,把纸纸相当于,也就是数据放进了信封信封相当于属性,也就是里,然后给了邮局相当于相当于一个中介,快递员进行派送,小明来到邮箱相当于,看到里边有封信相当于父组件的值,拿了出来。 讲故事前先讲代码 父组件向子组件传值 父组件数据传递给子组件可以通过props属性来实现父组件: import childComponent from ...

    xi4oh4o 评论0 收藏0
  • 事件冒泡机制与委托机制

    摘要:二事件委托机制知道了事件的捕获冒泡机制,我们可以利用它来实现更方便的程序控制,事件委托便是最典型的应用之一。下面来说说中的事件委托机制。 一、事件的捕获与冒泡    由W3C规定的DOM2标准中,一次事件的完整过程包括三步:捕获→执行目标元素的监听函数→冒泡,在捕获和冒泡阶段,会依次检查途径的每个节点,如果该节点注册了相应的监听函数,则执行监听函数。以下面的HTML结构为例: ...

    AprilJ 评论0 收藏0
  • Conflux吐槽君:IOTA物联网电磁炉-让PoW耗电没有遗憾

    摘要:任何人或物联网设备想发起交易,只需要引用其他两个交易就可以了。只要好人的交易总数足够多,它就是安全的。要知道,应用场景是物联网设备,物联网设备跑真是天才的想法啊。不仅如此,这个电磁炉还能提高烹饪的安全系数。 鉴于有不少小伙伴反映,觉得区块链技术圈乱象横生,鱼龙混杂,导致大家很难去辨识哪些是真正的技术。甚至有些人,打着说技术的名号,其实自己本身都没弄懂弄明白,只是懂个皮毛,就开始拿着各种...

    seasonley 评论0 收藏0
  • Conflux吐槽君:IOTA物联网电磁炉-让PoW耗电没有遗憾

    摘要:任何人或物联网设备想发起交易,只需要引用其他两个交易就可以了。只要好人的交易总数足够多,它就是安全的。要知道,应用场景是物联网设备,物联网设备跑真是天才的想法啊。不仅如此,这个电磁炉还能提高烹饪的安全系数。 鉴于有不少小伙伴反映,觉得区块链技术圈乱象横生,鱼龙混杂,导致大家很难去辨识哪些是真正的技术。甚至有些人,打着说技术的名号,其实自己本身都没弄懂弄明白,只是懂个皮毛,就开始拿着各种...

    LeexMuller 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<