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 |