JavaScript 入门

JavaScript 的历史

JavaScript 的诞生

1995 年 布兰登 ( Brendan Eich ) 为了应付公司安排的任务,用10天时间就把 JavaScript 设计出来了,他的设计思路是

  • 借鉴 C 语言的基本语法;
  • 借鉴 Java 语言的数据类型和内存管理;
  • 借鉴 Scheme 语言,将函数提升到"第一等公民"( first class )的地位;
  • 借鉴 self 语言,使用基于原型( prototype )的继承机制。

所以,JavaScript 语言实际上是两种语言风格的混合产物  ——(简化的)函数式编程+(简化的)面向对象编程。

名字的由来

1995 年刚设计出来的时候叫做 Mocha 语言,9月改为 LiveScript ,12月,网景公司( Netscape ) 公司与 Sun 公司( Java 语言的发明者和所有者 )达成协议,后者允许将这种语言叫做 JavaScript

浏览器大战

1996 年 8 月 IE3 发布,支持 JScript (微软实现的JS)

1996 年11月,网景公司向 ECMA 提交语言标准, ECMA 组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,由于版权问题,JS语言标准不叫JavaScript ,叫 ECMAScript 。

网景之死

  • 微软的 IE 浏览器因为捆绑进了 Windows ,很快超越网景公司
  • 1998 年网景公司陷入内忧外患,年底美国在线 AOL 公司宣布收购网景公司
  • 被收购后,网景团队的程序员纷纷被解雇
  • 布莱登在之后一直协助维护Firefox的运营

IE 如日中天

  • 2001 年,IE6 随着 Windows XP  一起发布
  • 2004 年,IE6 全球市场占用率80%以上
  • 由于不兼容 W3C 标准(主要是CSS)IE6 不断爆出安全漏洞
  • Firefox 打算涅槃重生,重新打败IE,但没有成功,只抢到百分之十几的市场份额
  • 2005 年,IE7 发布,但打不过 IE6
  • 2006 年,主流浏览器为 IE6 和 Firefox
  • 2010 年,由于盗版 Windows XP 在中国的风行,中国的大部分浏览器还是 IE6

IE6 的神奇 BUG (会让 IE6 直接崩溃)

<style>
    *{position : relative}
</ style>
<table>
    <input>
</table>

微软的懈怠

  • 由于 IE6 的巨大成功,加上没有竞争对手,微软解散了 IE6 的开发团队
  • Firefox 的出现让微软重组 IE 团队,但不是同一队人,造成 IE7、8 一直问题不断

Chrome 的崛起

  • 2004 年,谷歌雇用了一些 Firefox 和 IE 的开发者
  • 2008 年,Chrome 发布后迅速拿下全球 1% 的份额
  • 2011 年,Chrome 份额超过 Firefox
  • 2016 年,Chrome 全球份额 62% 

移动市场的兴起

  • 2010 年,iPhone 4 发布
  • 2011 年,微软和诺基亚合作,后来 Nokia 手机业务就完了
  • 2016 年,淘宝、天猫宣布不再支持IE6、IE7,同年年底,宣布不再支持IE8
  • 移动市场的兴起,让中国前端极速发展

ECMA 标准的制定

  • 1997 年 6 月,第一版 ECMAScript 发布
  • 1998 年 6 月,第二版 ECMAScript 发布
  • 1999 年 12 月,第三版 ECMAScript 发布,这个版本使用最广
  • 2007 年 10 月,第四版草案发布,由于目标过于激进,各方发生了严重分歧
  • 2008 年 7 月,由于各方分歧太大,ECMA 开会决定,中止第四版的开发
  • 2009 年 12 月,第五版 ECMAScript 发布,增加了一些功能
  • 2015 年 6 月,第六版 ECMAScript 发布,新浏览器都支持这一版
  • 之后每年发布一版,版本号以年份命名

JavaScript 和 ECMAScript 的关系

  • ECMAScript 是纸上的标准,JavaScript 是浏览器的实现
  • 纸上标准往往落后于浏览器,先实现,再写进标准

杀手级应用 Gmail

  • 2004 年愚人节,谷歌发布 Gmail 在线网页,新的功能让用户和开发者眼前一亮
  • 2005 年,Jesse 将谷歌用到的技术命名为 AJAX ,从此,前端技术正式出现
  • 此前网页开发都是由后端和设计师完成
  • 2006 年,jQuery 发布,是目前最长寿的JS库

JavaScript 爆发

  • Chrome 的 JS 引擎 V8 速度飞快
  • 2009 年,Ryan 基于 V8 创建了 Node.js
  • 2010 年,lsaac 基于 Node.js 写出了npm
  • 由于可以在浏览器之外执行 JavaScript ,Node.js 快速风靡
  • 同年 TJ 受 Sinatra 启发,发布了 Express.js
  • 从此,前端工程师可以愉快地写后端应用了

学习 JavaScript 的基本需求

软要求

  • 逻辑能力:写代码本身就是在编写逻辑
  • 质疑自己的能力:不要相信人类,包括自己。这不是粗心大意,是人类不可克服的问题,可以通过double check (双重检查)缓解
  • 抽象思维:高级程序员必备的能力,抽象思维可以使代码解决更多的问题

硬要求

  • 足够的代码量:达到1000行——新手,达到10000行——熟手,达到50000行——专业选手

       如何统计自己的代码行数?

       安装 yarn global add cloc

       cloc --vcs=git.

       可以用来统计一个仓库里的有效代码

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

  • 足够多的概念:闭包、原型、类、继承、MVC、Flux、高阶函数、前端工程化
  • 足够多的踩坑经验:把该领域所有的错误都犯一遍,就是专家了

        如何踩坑?

        做个人项目,全方位踩坑

*本文为鲲游北冥的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值