javascript关键字和保留字一览表及二者区别

时间:2016-09-04
今天在给一个对象添加名为enum的方法时,在IE下发生了错误,当时有点奇怪,然后想了下估计是javascript中关键字的问题,将名称替换了下,确实就没有问题了。现在将它的关键字和保留字贴出来。

javascript中的关键字和保留字,阅读javascript中的关键字和保留字。

今天在给一个对象添加名为enum的方法时,在IE下发生了错误,当时有点奇怪,然后想了下估计是javascript中关键字的问题,将名称替换了下,确实就没有问题了。现在将它的关键字和保留字贴出来,便于日后查看和避免在次出现类似的问题。

javascript关键字和保留字一览表

ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字(带*号上标的是第5 版新增的关键字):

break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger* function this with
default if throw delete
in try    


ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。以下是ECMA-262 第3 版定义的全部保留字:

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


第5 版把在非严格模式下运行时的保留字缩减为下列这些:

class enum extends super
const export import  


在严格模式下,第5 版还对以下保留字施加了限制:

implements package public interface
private static let protected
yield      

javascript关键字与保留字的区别 

“关键字”就是 JS 本身已经使用了,具有一定特殊的含义,你就不能再用它们充当变量名啊方法名啊什么的。包括(按字母排序):break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with 等。

“保留字”实际上就是预留的“关键字”,意思是现在虽然现在还不是关键字(也就是本身还不具备特殊含义的),但是未来可能会成为关键字的,你一样是不能使用它们当变量名啊方法名的。包括(按字母排序):abstract、boolean、byte、char、class、const、debugger、double、enum、export、extends、fimal、float、goto、implements、import、int、interface、long、mative、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile 等。