问题
Here's my code:
let padded = "03";
ascii = `\u00${padded}`;
However, I receive Bad character escape sequence
from Babel. I'm trying to end up with:
\u0003
in the ascii
variable. What am I doing wrong?
EDIT:
Ended up with ascii = (eval('"\\u00' + padded + '"'));
回答1:
What am I doing wrong?
A unicode escape sequence is basically atomic. You cannot really build one dynamically. Template literals basically perform string concatenation, so your code is equivalent to
'\00' + padded
It should be obvious now why you get that error. If you want to get the corresponding unicode character you can instead use String.fromCodePoint or String.fromCharCode:
String.fromCodePoint(3)
If you want a string that literally contains the character sequence \u0003
, then you just need to escape the escape character to produce a literal backslash:
`\\u00${padded}`
来源:https://stackoverflow.com/questions/33873982/es6-bad-character-escape-sequence-creating-ascii-string