为了账号安全,请及时绑定邮箱和手机立即绑定

写给JavaScript初学者(一)

标签:
JavaScript

最近公司招聘外包同事,在面试过程中,我发现一个问题:很多应试者其实对JavaScript这门语言本身认识不足!

例如,我会问一下,JavaScript的标准是什么?当前有哪些版本?很多应试者基本都答不上来。

很多非计算机专业的同学们,在转行前端开发的时候,基本都会去一些培训班,培训个一年半载,然后就出来找工作,但实际上JS基础能力都不够扎实。

这非常令人沮丧!

我个人认为,任何一个前端开发工程师,都应该花点功夫,先了解JavaScript语言本身,然后再结合CSS、HTML、DOM、BOM等技术栈进行实践。

JavaScript历史

1994年,Netscape发布了Navigator浏览器0.9版,这是历史上第一个比较成熟的网络浏览器。

但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力,例如,如果网页上有一栏"用户名"要求填写,浏览器就无法判断访问者是否真的填写了,只有让服务器端判断;如果没有填写,服务器端就返回错误,要求用户重新填写,这太浪费时间和服务器资源了。

因此,Netscape急需一种网页脚本语言,使得浏览器可以与网页互动。

当时就职于Netscape的工程师Brendan Eich负责开发这种新语言。

这门新语言最初被称为LiveScript,但因为当时Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此最终取名为JavaScript。

JavaScript 1.0获得了巨大的成功,Netscape随后在Netscape Navigator 3中发布了JavaScript 1.1。

随后,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。

在微软进入后,市面上有 3 种不同的 JavaScript 版本同时存在: JavaScript、JScript 以及ScriptEase。

当时JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。

随着业界担心的增加,这个语言的标准化显然已经势在必行。

1996年11月,Netscape决定将JavaScript提交给欧洲计算机制造商协会(ECMA,European Computer Manufactures Association),希望这种语言能够成为国际标准。

ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准,成员包括Netscape、Sun、Microsoft、Mozilla、Google等大公司。

1997年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。

ECMAScript 1.0

1997年6月,ECMAScript 1.0发布。

ECMAScript 2.0

1998年6月,ECMAScript 2.0发布。

ECMAScript 3.0

1999年12月,ECMAScript 3.0发布。

3.0是一个巨大的成功,在业界得到广泛支持,成为通行标准,奠定了JavaScript语言的基本语法,以后的版本完全继承。

ECMAScript 4.0

2000年,ECMAScript 4.0开始酝酿。

2007年,ECMAScript 4.0草案发布,预计次年8月发布正式版本。

但是,各方对于是否通过这个标准,发生了严重分歧。

以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动。

以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。

2008年,ECMAScript 4.0被废弃。

由于对于4.0应该包括哪些功能,各方分歧太大,争论过于激烈,ECMA开会决定,中止ECMAScript 4.0的开发。

将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本。

由于会议的气氛,4.0项目代号起名为Harmony(和谐)。

会后不久,ECMAScript 3.1就改名为ECMAScript 5.0。

ECMAScript 5.0

2009年,ECMAScript 5.0正式发布。

2011年,ECMAscript 5.1发布,并且成为ISO国际标准,到了2012年底,所有主要浏览器都支持ECMAScript 5.1版的全部功能。

ECMAScript 6.0

2013年3月,ECMAScript 6.0草案冻结,不再添加新功能。

2013年12月,ECMAScript 6.0草案发布。

2015年6月,ECMAScript 6.0正式发布,并且更名为“ECMAScript 2015”。

这是因为TC39委员会计划,以后每年发布一个ECMAScirpt的版本,下一个版本在2016年发布,称为“ECMAScript 2016”。

从现在开始,新版本将按照ECMAScript+年份的形式发布。

ECMAScript 7.0

2016年6月,ECMAScript 2016草案冻结。

ECMAScript 8.0

2017年6月,ECMAScript 2017草案冻结。

这个版本包含了我们常说的async/await特性。

ES.Next

ES.Next,是一个动态名称,它指的是任何在下一个版本中写入的内容。ES.Next特性通常被称为提议(proposals),顾名思义,规范还没有最终确定。

总结

综上,我们可以知道,ES3、ES5、ES6是现在主流的JavaScript标准规范,目前主流浏览器都已经实现了ES5全部特性,但一些比较古董的浏览器还只是支持到ES3,例如IE6、IE7、IE8等,这些浏览器在国内还是有一些市场份额,所以我们还能听到一些ES3的声音。。

但大部分情况下,我们还是在关注ES5、ES6(ES2015),由于主流浏览器还未完全ES6,所以一般情况下,我们基本都是用ES6开发,然后经过babel转换为ES5。

对于初学者,个人建议还是先了解ES5,熟练应用ES5全部特性,然后再考虑学习并使用ES6进行开发。

接下来就是学习并使用Babel,了解Babel工程化相关技能,将ES6转化为ES5,最终发布ES5代码上线。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消