迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

JavaScript 中的保留关键字

作者:迹忆客 最近更新:2023/01/09 浏览次数:

寻找 JavaScript 中所有保留字的列表? 你来对地方了。 我最近自己也需要这样一个列表,但最终还是比较了所有 ECMAScript 版本中的保留关键字。 结果列在下面,以供将来参考。


ECMAScript 1

一开始,有 ECMAScript 1。它列出了以下保留字:

do
if
in
for
new
try
var
case
else
enum
null
this
true
void
with
break
catch
class
const
false
super
throw
while
delete
export
import
return
switch
typeof
default
extends
finally
continue
debugger
function

ECMAScript 2

后来,ECMAScript 2 增加了 int, byte, char, goto, long, final, float, short, double, native, public, static, throws, boolean, package, private, abstract, volatile, interface, protected, transient, implements, instanceof , 并同步。

do
if
in
for
int
new
try
var
byte
case
char
else
enum
goto
long
null
this
true
void
with
break
catch
class
const
false
final
float
short
super
throw
while
delete
double
export
import
native
public
return
static
switch
throws
typeof
boolean
default
extends
finally
package
private
abstract
continue
debugger
function
volatile
interface
protected
transient
implements
instanceof
synchronized

ECMAScript 3

ECMAScript 3 在保留关键字列表中没有引入任何变化——它与 ECMAScript 2 关键字相同。


ECMAScript 4

没有 ECMAScript 4 这样的东西。


ECMAScript 5

ECMASCript 5/5.1 删除了 intbytechargotolongfinalfloatshortdoublenativethrowsbooleanabstractvolatiletransientsynchronized; 它添加了 letyield

do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof

请注意 ,仅在严格模式下不允许使用 implementsletprivatepublicinterfacepackageprotectedstaticyield

大家可能已经注意到我在列表中包含了 evalarguments。 这些不是严格的保留字,但它们确实像它们一样——它们在严格模式下也是不允许的。

此外,全局对象的(未列出的)NaNInfinityundefined 属性在 ES5 中是不可变或只读属性。 所以即使 var NaN = 42; 在全局范围内不会抛出错误,它实际上不会做任何事情。 为了避免混淆,我建议完全避免使用这些标识符,即使它们不是严格的保留字。


ECMAScript 2015 (ES6)

最新的 ECMAScript 2015 (ES6) 草案将 await 添加为模块中的未来保留字。 即使在非严格模式代码中,现在也不允许使用 letyield。 在某些情况下, yield 被赋予标识符的语义。

do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
await
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof

什么用途?

保留关键字不能用作 JavaScript 中的变量名。 为了与旧的 JavaScript 引擎实现最佳的向后兼容性,最好避免使用此页面上的关键字作为变量名或属性名——即使是旧的 ECMAScript 2 引擎,如 chardefault

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便