一、学习JS的必备能力
(一)软能力
- 逻辑能力
- 先质疑自己,在质疑电脑! 时常更新自己学过的知识
- 抽象思维
(二)硬能力
- 足够的代码量
-
新手1000行;熟手10000行;专业选手50000行
-
如何统计自己的代码行数
①安装:
yarn global add cloc②统计一个仓库里的有效代码
cloc --vcS=git .③注意: 如果仓库里有node_ modules 目录等不相关内容,需要把/node_ modules/ 写入.gitignore 文件
- 知道足够的概念
①常用常考
- 闭包、原型
- 类、继承
- MVC、Flux
- 高阶函数
- 前端工程化
②如何积累
- 在课程中提炼
- 在大脑中思考
- 在博客上总结
- 在代码中实践
- 有足够的踩坑经验
- 不是工作经验
- 何谓专家:把该领域内所有的错误都犯完的人,就是专家
- 如何踩坑:做项目,而且是个人项目。 个人项目的意思是所有代码都是你一个人写的,这样你才能全方位踩坑。
- 记住把踩过的坑记下来!
二、JavaScript的诞生
(一)发明者--布兰登
- 生平
- 1961年生于美国
- 物理学转数学与计算机学位
- 工作七年,负责操作系统与网络开发
- 又工作三年,负责微内核与电子信号处理相关工作
- 1995年进入网景公司,为其浏览器开发了JS功能
- 1998年协助成立Mozilla.org,担任首席架构师
- 网景死亡后,他成立了Mozilla基金会,Firefox 就是 这个基金会维护的,有纪录片记录了这一过程
- 2014年晋升为Mozilla的CEO,十天后,被赶下台 原因是他曾捐助过反同性恋的法案(只有异性可结婚)
- 2015年成立Brave公司, 开发保护用户隐私的浏览器
(二)JavaScript的诞生
- 布莱登1995年临危受命
- 公司要求给浏览器添加一个脚本功能
- 公司要求这个脚本必须蹭Java的流量
- 布莱登花十天设计了JS的最初版本(不是实现)
- JS的命名
- Mocha摩卡=> LiveScript => JavaScript
- Java既是编程语言,也是一-种咖啡
- 浏览器一开始同时就支持Java和JavaScript。后来,JS胜了(在浏览器上)
三、浏览器大战
1、微软的跟进
- 1996年8月IE 3发布,支持JScript (微软实现的 JS)
- 浏览器大战开始,每家浏览器的脚本不太一样
2、网景的反击
- 1996年11月,网景向ECMA提交语言标准,由于版权问题,JS语言标准不叫JavaScript,叫ECMAScript
3、网景之死——被收购
- 微软的IE浏览器由于捆绑进了Windows,很快超越
- 1998年, 网景浏览器节节败退, 公司陷入内忧外患
- 同年, 公司打算搏一搏,将浏览器开源(Firefox)
- 最终, 市场并没有因为开源而重新青睐网景
- 年底,美国在线AOL宣布开始收购网景
- 收购后,网景团队里的程序员纷纷被解雇
- 布莱登在之后一直协助维护Firefox的运营
4、IE6如日中天
- 2001年,,IE 6随着Windows XP一起发布
- 2004年,IE 6全球市场占用率80%以上
- 然而,这款浏览器却不兼容W3C标准(主要是CSS),IE 6也不断爆出安全漏洞
- Firefox打算涅擊重生,重新打败IE
- 2005年,IE 7发布,但打不过IE 6
- 2006年,主流浏览器为IE 6和Firefox(百分之十几的份额)
- 2010年,中国的大部分浏览器还是IE 6,由于盗版Windows XP在中国的风行,在很多年里,IE 6始终占据中国浏览器市场,是前端开发者的恶魔
5、Chrome横空出世
(1)微软的懈怠
- 由于IE 6的巨大成功,微软觉得再花费精力不值得, 而且没有竞争对手,所以直接解散了IE 6开发团队
- Firefox的出现让微软重新组建IE团队,但不是同一队人,造成IE 7、8一直问题不断
(2)谷歌抓住机会
- 2004年,谷歌雇用了一些Firefox和IE的开发者
- 2008年,Chrome终于发布,迅速拿下1%份额
- 2011年,Chrome份额超过Firefox
- 2016年,Chrome 全球份额62%
6、移动市场兴起——智能手机崛起
- 2010年,iPhone 4发布
- 2011年,微软和Nokia联合起来,打算搞一波事情。后来的事情大家都知道,Nokia 手机业务完了
- 也就是说,手机上基本没有IE了。前端程序员表示欣喜若狂,IE终于快要死了
- 2016年,淘宝天猫宣布不再支持IE6、IE7。同年年底,宣布不再支持IE 8
- 移动市场的兴起,让中国前端摆脱IE十年的恐怖支配
- 从此,前端快速,不对,是极速发展
四、ECMAScript标准的制定
1、历程
- 1997年6月, 第一版ECMAScript发布
- 1999年12月,第三版发布,这个版本ES3使用最广(IE6支持,总体评价:垃圾)
- 第四版,流产。那些年都是IE,而IE又觉得自己牛,用不着这些新的功能
- 2009年12月,第五版发布,增加了一些功能(总体评价:还是垃圾)
- 2015年6月,第六版发布,新浏览器都支持这一版ES6(总体评价:一半垃圾一半好)
- 之后每年发布一版,版本号以年份命名
- ES2019与ES6差别不大
注:为什么说ES 6一半垃圾
- 一半垃圾来源于ES3、ES5
- 因为ES不能删除以前的特性,要兼容旧网站,也就是说以前能运行的网站,以后都要能运行
- 对比Python 3你就能知道兼容的好处:稳定
2、JS与ECMAScript的关系
- ECMAScript是纸上的标准,JS是浏览器的实现
- 纸上标准往往落后于浏览器,因为先实现,再写进标准
五、JavaScript兴起
杀手级应用Gmail
- 2004年愚人节,谷歌发布Gmail在线网页
- 当时的人们认为网页只能用来看新闻和图片
- Gmail的发布让用户和开发者眼前一亮
- 2005年,Jesse 将谷歌用到的技术命名为AJAX
- 从此,前端技术正式出现
- 在此之前的网页开发都是由后端和设计师完成
- 2006年,jQuery 发布,是目前最长寿的JS库
- 后来的十年,jQuery 大发异彩,直到IE不行了,
- jQuery才稍微没有那么火
六、中国的前端
- 正式出现时间:2010年左右,中国才有专门的前端岗位
- 前端的来源
- 一部分来自自学的后端程序员,他们把Java的思想代入JavaScript,面向对象成了JS的主流思想
- 一部分来自设计师,他们开始学习CSS,并独创了「重构工程师」岗位(现已没落)
- 缺人
- 最应该产出前端人才的大学,迟迟没有相关课程
- 由于早期前端工资比不上后端,所以大部分人选后者
- 就如同现在很多高材生选择机器学习一样
- 一些不小心进入前端领域的科班生成长非常迅速
七、JavaScript爆发
- V8快如闪电
- Chrome的JS引擎叫做V8 (V1到V7是啥)
- 2009年,Ryan基于V8创建了Node. js
- 2010年,Isaac 基于Node.js写出了npm
- 前端工程师可以在浏览器之外执行JS了,Node.js快速风靡
- 同年,TJ受Sinatra启发,发布了Express.
- 从此,前端工程师可以愉快地写后端应用了!
- 爆发
这期间出来的技术太多,: gulp、grunt、 yeoman、requirejs、 webpack、 Angular、 React、 Vue 等。这些技术很多也已经过时了