Вообще то это не совсем точно. В JS строки интерпретируются как UTF-16LE или UCS-2 (UCS-2 does not interpret surrogate code points, and thus cannot be used to conformantly represent supplementary characters). И большинство операций у String как раз интерпретируются как USC-2, кроме codePointAt и fromCodePoint