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