我有一些这样的代码:
str = ""
for (var i = 0; i < 5; i++) str += eval("'\\u" + Math.floor(Math.random() * 65536).toString(16) + "'")
有时在控制台中运行此命令时,会发生Uncaught SyntaxError: Invalid Unicode escape sequence
。错误在于eval
引用中。该语法(包括eval
)应该可以使用。具有反斜杠,“ u”和4个随机十六进制数字的字符串将传递到eval
中。 eval
将“ \ u”和十六进制数字解释为Unicode字符。用某种(足够)好的语法出现错误。
请找出导致此错误的原因,并提供可避免该错误的此代码版本。