前端知识学习

1.历史沿革

JavaScript语言的前身叫作Livescript,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的Livescript 重新进行设计,并改名为JavaScript。

既然谈到关键字,那么我们就不得不提到ECMA-262标准,ECMAScript语言,TC39。
弄懂这些,JS的历史就清楚了。
因为JavaScript是一个大坑,他的关系组成很混乱,说法也很多,如果我有说的不对的或者有不同的想法,欢迎指正。

下面放上一张思维导图来解释:

总的来说,ECMA是ECMAScript的别名,统一标志。
关键字在不同版本中是不同的,谈到关键字就得提到ECMA-262标准,和ECMAScript。

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。

这个标准的创立是因为在发展初期,网景的Javascript,微软的JScript和CEnvi的ScriptEase三足鼎立,均没有设定标准,之后在ECMA的协调下,创立了ECMA-262统一标准。

而我们现在使用的JavaScript等类似语言是ECMAScript的实现,加上了自己的东西。

这种语言在万维网上应用广泛,它往往为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。

2.ECMAScript历史沿革

现在ECMA标准规定了ECAMScript2016的语言特性,这也是ECAM的第七版

版本 代号 时间 简介
ECMAScript 第一版   1997年被采纳,并于 1998年4月 以国际标准 ISO/IEC 16262 通过 即我们听说的ECMA-262
ECMAScript 第二版 ECMAScript2 1998年 第二版的改动主要是编辑性质方面的
ECMAScript 第三版 ECMAScript3 1999年12月 被 Ecma委员会 采纳并于 2002年6月 作为国际标准 ISO/IEC 16262:2002 发布 加入了 try/catch 异常处理,定义了更严密的错误类型,格式化了数字输出,并且还做了其它一些为了国际化和语言成长的小变更 ,奠定了JAVAScript的主要地位
ECMAScript 第四版 ECMAScript4 2000年酝酿,2007年草案发布,2008年终止 没能符合要求而最终被放弃了,虽然很多内容具有重要意义。不过,第四版的一部分内容最终被继承到了第六版
ECMAScript 第五版 ECMAScript5 2009年发布,2011年发布5.1 规范化了很多已经在浏览器形成共识的语言规范,并且增加了自第三版后的一些新功能包括存取器属性、反射创建以及对象检测、属性特性的程序控制、数组操作完善、JSON格式支持、并且新增了严格模式 以检查语法以及程序安全性
ECMAScript 第六版 ECMAScript6,又名ES2015 2009 年开始制定,2015年6月 被 Ecma委员会 通过 最主要的增强部分有模块化、类 (class) 声明、块级作用域、迭代器 (iterator) 和生成器 (generator)、promise 异步语法、解构模式以及合理的尾调用,第六版标准新增了数据结构操作,包括 map、sets、二进制数组等;新增了一些额外补充的 Unicode 字符并允许用在表达式或字符串中;还通过子类化增强其扩展性。第六版标准大大增强类 ECMAScript 语言本身能力以及它对库文件、大工程支持度
ECMAScript 第七版 ES2016 2016年发布  

3.JS关键字及其作用

关键字是保留的,不能用作变量名或函数名
这里只是大概把功能列举一下,其实学过Java或者JS用的比较熟,这些基本上都知道了。

名称 作用
break 立即退出循环,阻止再次反复执行任何代码
case 配合switch完成判断
catch 配合try进行错误判断
continue 退出当前循环,根据控制表达式还允许继续进行下一次循环
default 配合switch,当条件不存在时使用该项
delete 删除了一个属性
do 用于do-while,后测试循环,即退出条件在执行循环内部的代码之后计算
else 配合if条件判断,用于条件选择的跳转
finally 预防出现异常时用的,无论异常是否是否发生异常都会处理的
for for语句,循环语句
function 函数关键字
if if 语句用于判断
in 1.配合for遍历对象,2.判断某个属性属于某个对象
instanceof 某个对象是不是另一个对象的实例
new 创建一个新对象
return 从当前函数退出,并从那个函数返回一个值
switch 弥补if的多重判断语句
this 总是指向调用该方法的对象
throw 抛出异常
try 配合catch进行错误判断
typeof 检测变量的数据类型
var 声明变量
void 声明没有返回值
while while判断语句,可配合do做前置判断,或独立使用做后置判断
with with 语句用于设置代码在特定对象中的作用域

4.Java和JavaScript的区别

写这一章是很有必要的,作为后端开发,没有那么多精力专门将前端学习一遍,试着记住两者的不同,与共同,来实现快速掌握很有必要。

要点 Java JavaScript
switch 仅为整型或者可以转换为整型的数值类型,case中为常量表达式 在 ECMAScript 中,switch 语句可以用于字符串,而且能用不是常量的值说明情况,case 使用的可以是变量

5.JS保留字

名称 名称 名称 名称
abstract boolean byte char
class const debugger double
enum export extends final
float goto implements import
int interface long native
package private protected public
short static super synchronized
throws transient volatile