本文轉(zhuǎn)載至? http://www.itxueyuan.org/view/6627.html
ECMA-262 描述了一組具有特定用途的關(guān)鍵字翻伺。這些關(guān)鍵字可用于表示控制語句的開始或結(jié)束,或者用于執(zhí)行特定操作等。按照規(guī)則,關(guān)鍵字也是語言保留的燕锥,不能用作標(biāo)識符米诉。以下就是ECMAScript的全部關(guān)鍵字(帶*號上標(biāo)的是第5 版新增的關(guān)鍵字):
break
do
instance
of
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 還描述了另外一組不能用作標(biāo)識符的保留字。盡管保留字在這門語言中還沒有任何特定的用途乘瓤。但它們有可能在將來被用作關(guān)鍵字。以下是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
protecte
dvolatile
double
import
public
第5 版把在非嚴(yán)格模式下運(yùn)行時(shí)的保留字縮減為下列這些:
class
enum
extend
ssuper
const
export
import
在嚴(yán)格模式下策泣,第5 版還對以下保留字施加了限制:
implements
package
public
interface
privat
estatic
let
protected
yield
注意衙傀, let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定義的萨咕。為了最大程度地保證兼容性统抬,建議大家將第3 版定義的保留字外加let 和yield 作為編程時(shí)的參考。
在實(shí)現(xiàn)ECMAScript 3 的JavaScript 引擎中使用關(guān)鍵字作標(biāo)識符危队,會導(dǎo)致"Identifier Expected" 錯誤聪建。而使用保留字作標(biāo)識符可能會也可能不會導(dǎo)致相同的錯誤,具體取決于特定的引擎茫陆。
第5 版對使用關(guān)鍵字和保留字的規(guī)則進(jìn)行了少許修改金麸。關(guān)鍵字和保留字雖然仍然不能作為標(biāo)識符使用,但現(xiàn)在可以用作對象的屬性名簿盅。一般來說挥下,最好都不要使用關(guān)鍵字和保留字作為標(biāo)識符和屬性名揍魂,以便與將來的ECMAScript 版本兼容。
除了上面列出的保留字和關(guān)鍵字棚瘟,ECMA-262 第5 版對eval 和arguments 還施加了限制现斋。在嚴(yán)格模式下,這兩個名字也不能作為標(biāo)識符或?qū)傩悦苏海駝t會拋出錯誤庄蹋。