15·灵魂前端工程师养成-JavaScript历史

2022-09-26 16:48:24 浏览数 (1)

  • 学习JS的基本要求
  • JavaScript的历史
  • JavaScript爆发

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


学习JS的基本要求


前端的门槛

学习 HTML 和 CSS 相对来说会比较简单,但是学习JS,就要绞尽脑汁了。

1.要有逻辑能力

比如: JS的数据类型:number|string|null|undefined|bool|symbol|object JS的函数:不是number|string|null|undefined|bool|symbol中的任意一种

忘记上面这句话...只要你能根据上面两句话推理出下面那句话,那么证明,你是有逻辑的。

JS的函数:object

2.质疑自己的能力

不要相信人类,更不要相信自己

人类的粗心大意是必不可少的。

比如: 把0写成O 把iOS写成IOS或者ios ...

3.抽象能力

在程序猿的世界中,很多东西我们都可以看做是同一类型的东西。

比如: 订了一份报纸 关注了偶像蔡徐坤的微博 用JS坚挺了一个按钮的点击事件

那么在程序员的眼中,这三件事拥有共同的模式:发布/订阅模式


足够的代码量

1000行:新手 10000行:熟手 50000行:专业选手

如何统计自己的代码量?

代码语言:javascript复制
#安装cloc
yarn global add cloc
#统计一个代码仓库里的有效代码
cloc --vcs=git

cloc:count lines of code

统计关于代码的行数

注意:如果仓库中有node_modules目录等不相关内容,需要把node_modules写入.gitignore文件中

代码语言:javascript复制
MacBook-Pro:http-demo-1 driverzeng$ cloc --vcs=git .
       1 text file.
       1 unique file.
       0 files ignored.

github.com/AlDanial/cloc v 1.85  T=0.14 s (7.0 files/s, 456.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
JavaScript                       1              6              2             57
-------------------------------------------------------------------------------

JavaScript的历史

李爵士发明了HTML 赖先生发明了CSS 布兰登发明了JavaScript


JS的诞生

临危受命

1.公司要求给浏览器添加一个脚本功能 2.公司要求这个脚本必须蹭Java的流量 3.布兰登话十几天涉及了JS的最初版本

JS的命名

1.Mocha摩卡=>LiveScript=>JavaScript 2.Java即是一种编程语言,也是一种咖啡 3.浏览器一开始同时就支持Java和JavaScript 4.后来,JS赢了,(在浏览器方面)


浏览器大战

当JS出来的那一刻,微软跟进,立马推出一个新的产品:

1996年8月IE3发布,支持JScript(微软实现的JS,因为JavaScript被占用所以只能叫JScript)

因此,浏览器大战一触即发,每家浏览器的脚本不太一样。

后来,网景开始反击:

1996年11月,网景向ECMA提交语言标准,由于版权问题,JS语言标准不叫JavaScript,叫ECMAScript。


网景之死

微软做了一个决定,将IE浏览器捆绑到Windows中,很快就超过了网景浏览器的使用份额

1998年,网景浏览器节节败退,公司陷入内忧外患

内忧:内部员工有一部分觉得要跟微软拼,另一部分员工认为,根本打不过微软。 外患:外部人员,都认为IE会赢

同年,网景公司打算殊死一搏,将浏览器(Firefox)开源... 导致前端发展遇到问题。 最终,市场并没有因为开源而重新青睐网景。 年底,美国在线AOL宣布开始收购网景 收购后,网景团队里的成员纷纷被解雇 布兰登,在之后一直协助维护Firefox。


IE6 如日中天

2001年,IE6随着WindowsXP一起发布 2004年,IE6全球市场占用率80%以上 而且,IE完全不兼容W3C标(主要是CSS),不断爆出漏洞。程序猿开发,写一套代码,还要写一套IE的代码,简直是噩梦。

Firefox打算涅槃重生,打败IE 2005年,IE7发布,但是打不过IE6 2006年,主流浏览器为IE6和Firefox,公司做了大胆决定,开除了所有的IE开发人员,因为浏览器太牛逼了,根本不需要再开发什么。 2010年,中国的大部分浏览器还是IE6

由于盗版Windows XP在中国的风行,在很多年里,IE6始终占据中国浏览器市场,是前端开发者的噩梦。


IE6神奇的bug

代码语言:javascript复制
<style>
    *{position:relative}
</style>
<table>
    <input>
</table>

如果把上面的代码,放在IE6中,IE6会让你当场司机,突然去世...


让IE死亡的浏览器

Chrome 横空出世

因为微软的懈怠,解散了IE6的开发团队,后来Firefox的出现,让微软重新组织了一个团队,但不是一个团队,IE7和IE8一直问题不断

谷歌抓住机会: 2004年:谷歌雇佣了一些Firefox和IE的开发者 2008年:Chrome终于发布,迅速拿下1%的市场份额 2011年:Chrome的市场份额超过Firefox 2016年:Chrome全球份额62%

谷歌宣传广告(主打速度快):传送门

JavaScript爆发


V8快如闪电

Chrome的JS引擎叫做V8(V1-V7,每一个V都是不同的一门语言)

例如 JAVA虚拟机,SmallTalk虚拟机,Dart虚拟机...

2009年,Ryan基于V8创建了Node.js 2010年,Isaac基于Node.js写出了npm

这两个一结合,我们就可以在浏览器之外执行JS了

代码语言:javascript复制
MacBook-Pro:http-demo-1 driverzeng$ vim demo1.js
console.log('hello world')

MacBook-Pro:http-demo-1 driverzeng$ node demo1.js
hello world

2010年,TJ受Sinatra启发,发布了Express.js 从此前端工程师可以愉快的写后端应用了。


总结

1.JS是历史的选择

一开始浏览器支持很多东西:Java、Flash、VBScript,只有JS活到最后

2.JS低开高走

一开始JS就是一个玩具语言,但是JS每次都走对了风口

0 人点赞