Combining ES6 unicode literals with ES6 template literals

ecmascript-6, javascript, template-literals, unicode, unicode-escapes

Solution

You would need to use `String.fromCodePoint()`, which accepts a number and returns a character.

You can't do it with literals because... well... it's not a literal anymore. Literals can't be produced as the result of a procedure, they need to be written as literals.

Problem

If I want to print a unicode Chinese character in ES6/ES2015 javascript, I can do this: ``` console.log(`\u{4eb0}`); ``` Likewise, if I want to interpolate a variable into a template string literal, I can do this: ``` let x = "48b0"; console.log(`The character code is ${ x.toUpperCase() }.`); ``` However, it seems that I can't combine the two to print a list of, for example, 40 consecutive unicode Chinese characters. This doesn't work: ``` for (let i = 0, firstCharCode = parseInt("4eb0", 16); i < 40; ++i) { let hexCharCode = (firstCharCode + i).toString(16); console.log(`\u{${ hexCharCode }}`); // generates SyntaxError } ``` So I'm asking if there's any way it's possible.

Original source

Related problems