我正在尝试检测给定的词是否是 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/