如您所知,JavaScript 保留了所有 Java 关键字。有谁知道为什么?JavaScript 不鼓励使用这些 Java 关键字,但它们在用作标识符时似乎可以正常工作。
4 回答
故事是,当他们开发 JavaScript(我相信最初称为 Oak(显然,我把语言混淆了,之前关于它的原始名称不正确的说法。))时,Netscape 与 Sun 合作开发它。为了吸引 Java 社区,他们想让 JavaScript 像 Java 一样,让 Java 开发人员对它感觉更舒服,这就是它们如此相似的原因。
关于设计一门语言,你必须记住的是,你实际上只需要一次定义关键字,而不会让新版本的语言破坏现有代码。在开始时保留一个单词而不使用它比稍后尝试保留它要容易得多。对于像 JavaScript 这样的事情尤其如此,开发脚本的人无法控制它将在哪个浏览器中运行(我知道现在会发生这种情况,但情况可能会更糟)。你能想象发现新浏览器采用的下一个版本的 JavaScript 突然不能运行你的应用程序,因为他们保留了一个新的关键字是多么令人抓狂吗?
嗯,它实际上不是 Java 关键字,因为除了借用名称之外,Javascript 与 Java 没有任何关系。
保留这些名称以防将来扩展该语言时需要它们。来自ECMAScript 语言规范:
“以下词在提议的扩展中用作关键字,因此保留以允许将来采用这些扩展的可能性......”
可能是为了避免使用这些关键字作为变量名可能导致的潜在混淆。
我的意思是,想象一下一个 Java 开发人员试图找出一段 JavaScript 代码,其中包含一个名为public
.
即使有可能,为了清楚起见,我也建议不要这样做。
据推测,JavaScript 的开发人员认为这些词可能会在未来的 JavaScript 版本中用于附加功能。为了防止向后兼容问题,这些词被抢先标记为保留。