Skip to content

Instantly share code, notes, and snippets.

@justjavac
Last active February 19, 2019 05:45
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save justjavac/a5aa1c0d0d111cf19e852037f4c483db to your computer and use it in GitHub Desktop.
Save justjavac/a5aa1c0d0d111cf19e852037f4c483db to your computer and use it in GitHub Desktop.
// JavaScript 字符串编码使用 UTF-16
"💩".length === 2;
"💩" === "\u{1F4A9}"; // es6
"💩" === "\uD83D\uDCA9"; // es5
// 同一个编码可能使用不同的码位
"ò" === "ò"; // ❎
"ò" === "\xF2"; // ✅
"ò" === "o\u0300"; // ✅
"o\u0300".normalize("NFC") === "\xF2"; // ✅ es6 提供了 normalize 函数
"👨‍👩‍👧‍👦".length === 11;
"👨‍👩‍👧‍👦" === "\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}";
"👨" === "\u{1F468}";
"👩" === "\u{1F469}";
"👧" === "\u{1F467}";
"👦" === "\u{1F466}";
[..."👨‍👩‍👧‍👦"]; // [ "👨", "‍", "👩", "‍", "👧", "‍", "👦" ]
// 在 Unicode 支持不完善的系统上按退格键,能看到这些家庭成员一个接一个的消失。
// 一家人就是要齐齐整整
@justjavac
Copy link
Author

提交评论时遇到了这个

@zxmLoveLife
Copy link

Webkit默认JS引擎JavaScriptCore里String的iterator实现,和Safari的执行结果一致。
image

Chrome下执行结果:
image
估计是length是11,不足的位数默认填充了undefined

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment