Handle Unicode text, emoji, encoding, normalization, code points, and safe storage.
Lessons
Reverse text without corrupting emoji.
Reversing Strings Safely is easiest to learn by reading the example, changing it, and observing the result.
const seg = new Intl.Segmenter('en', { granularity: 'grapheme' });
const graphemes = text => [...seg.segment(text)].map(s => s.segment);
// Reverse without corrupting emoji
const reverse = text => graphemes(text).reverse().join('');
console.log(reverse('ab😀')); // "😀ba"
// Truncate to N visible characters
const truncate = (text, n) => graphemes(text).slice(0, n).join('') + '…';
console.log(truncate('Hello👨👩👧👦 world', 6));Practice the Reversing Strings Safely example in a small scratch file, then explain what changed and why.