javascript - 如何检测给定的单词是否是 JavaScript 中的默认关键字?

标签 javascript

我正在尝试检测给定的词是否是 JavaScript 中的默认关键字? 示例:我有一个类似 arr=["function","some"] 的数组,这些是默认关键字。如果我在编辑器中写为“function”或“some”之类的词,我需要检测 function 或 some 是默认关键字并返回 true。

最佳答案

没有内置任何东西(不是真的;见下文),您只需从 list of reserved words 开始工作在规范中,它们被归类为关键字(如function)和future reserved words(如enum ).但请注意,有时会添加新的关键字,即使它们没有被保留(例如,async 将出现在 ES2017 中,但以前既不是关键字也不是 future 的保留字)。

想到的一个选择是使用 Function 构造函数(它创建但不运行函数)来查看是否可以使用该词作为变量名:

var results = ["function", "foo", "enum", "class"].map(function(keyword) {
    try {
        new Function("var " + keyword + ";");
        return {keyword: keyword, isReserved: false};
    }
    catch (e) {
        return {keyword: keyword, isReserved: true};
    }
});
console.log(results);
.as-console-wrapper {
  max-height: 100% !important;
}

关于javascript - 如何检测给定的单词是否是 JavaScript 中的默认关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42993710/

相关文章:

javascript - Chrome 扩展 : between background. js 和刚刚创建的窗口之外的消息传递

javascript - 为什么不通过 Bower 链接调用 sortBy 安装 lodash?

javascript - 删除功能未按预期删除

javascript - 在javascript中检测[object Window]的 "Window"部分

javascript - 在单个脚本中使用多个 page.open

javascript - 解构对象并忽略其中一个结果

javascript - 如何通过输入字段使用 React JS 更新 Highcharts

javascript - jQuery 的 Tipsy 插件在哪里?

javascript - DOM Mutation Observers 是否比 DOM Mutation Events 慢?

javascript - 自定义验证 [AngularJS]