返回介绍

第一部分 类型和语法

第二部分 异步和性能

A.6 保留字

发布于 2023-05-24 16:38:21 字数 1465 浏览 0 评论 0 收藏 0

ES5 规范在 7.6.1 节中定义了一些“保留字”,我们不能将它们用作变量名。这些保留字有四类:“关键字”“预留关键字”、null 常量和 true/false 布尔常量。

像 function 和 switch 都是关键字。预留关键字包括 enum 等,它们中很多已经在 ES6 中被用到(如 class 、extend 等)。另外还有一些在严格模式中使用的保留字,如 interface 。

一个名为“art4theSould”的 StackOverflow 用户将这些保留字编成了一首有趣的小诗(http://stackoverflow.com/questions/26255/reserved-keywords-in-javascript/12114140#12114140 ):

Let this long package float,
Goto private class if short.
While protected with debugger case,
Continue volatile interface.
Instanceof super synchronized throw,
Extends final export throws.

Try import double enum?
-False, boolean, abstract function,
Implements typeof transient break!
Void static, default do,
Switch int native new.
Else, delete null public var
In return for const, true, char
...Finally catch byte.

这首诗中包含了 ES3 中的保留字(byte 、long 等),它们在 ES5 中已经不再是保留字。

在 ES5 之前,保留字也不能用来作为对象常量中的属性名称或者键值,但是现在已经没有这个限制。

例如,下面的情况是不允许的:

var import = "42";

但是下面的情况是允许的:

var obj = { import: "42" };
console.log( obj.import );

需要注意的是,在一些版本较老的浏览器中(主要是 IE),这些规则并不完全适用,有时候将保留字作为对象属性还是会出错。所以需要在所有要支持的浏览器中仔细测试。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文