Неверная последовательность сброса Unicode с правильным синтаксисом (JS) - PullRequest
1 голос
/ 17 марта 2019

У меня есть такой код:

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

...