Skip to content
Advertisement

Determine if a word is a reserved Javascript identifier

Is it possible in Javascript to determine if a certain string is a reserved language keyword such as switch, if, function, etc.? What I would like to do is escaping reserved identifiers in dynamically generated code in a way that doesn’t break on browser-specific extensions. The only thought coming to my mind is using eval in a try-catch block and check for a syntax error. Not sure how to do that though. Any ideas?

Answer

One option would be to do:

var reservedWord = false;
try {
  eval('var ' + wordToCheck + ' = 1');
} catch {
  reservedWord = true;
}

The only issue will be that this will give false positive for words that are invalid variable names but not reserved words.

As pointed out in the comments, this could be a security risk.

Advertisement