У меня есть такой код:
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. Почему-то ошибка появляется с таким хорошим (достаточным) синтаксисом.
Найдите причину этой ошибки и представьте версию этого кода, которая обходит эту ошибку.