如何在JavaScript中检测给定单词是否为默认关键字?

时间:2017-03-24 07:26:35

标签: javascript

我试图在JavaScript中检测给定的单词是否为默认关键字? 示例:我有一个像arr=["function","some"]这样的数组,这些是默认关键字。如果我写的话就像' function'或者'一些'在编辑器中我需要检测函数或某些是默认关键字并返回true。

1 个答案:

答案 0 :(得分:6)

没有任何内置功能(不是真的;请参见下文),您只需使用规范中的list of reserved words,即关键字(例如function)和将来的保留字(例如enum)。但请注意,有时会添加新关键字,即使它们尚未保留(例如,async将在ES2017中,但以前不是关键字或未来的保留字)。

我想到的一个选项是使用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;
}