gitmoji 的 Unicode
Unicodes for gitmoji
我正在审查代码,他们的作者在其中做了类似的事情
const emojis: Array<Icon | undefined> | undefined = emojiSet
.map((emoji) => {
if (emoji.name && emoji.unified) {
const codePoints = emoji.unified
.split("-")
.map((token) => Number("0x" + token));
return {
name: emoji.name,
value: String.fromCodePoint(...codePoints),
index: emoji.unified,
};
}
return undefined;
})
.filter(Boolean);
为了理解代码,我浏览了这个 repo(这是上面用来迭代 json 的内容)
这里,在例子中统一为 "unified": "261D-FE0F",
当他这样做时,
const codePoints = emoji.unified
.split("-")
.map((token) => Number("0x" + token));
他正在遍历 261D-FE0F
并将其映射到数字 .map((token) => Number("0x" + token));
[问题]这里我无法理解他为什么要在数字后面加上“牛”?我们如何使用 unicode 确定这将是表情符号?
这是来自 wiki 的 unicdoe blocks(如果它与我的问题有关的话)
因为数字是十六进制的。 0x
是用于表示十六进制数的前缀。 Number("261D")
是 NaN
,但 Number("0x261D")
是 9757。
JavaScript 中可用的其他前缀是 0b
(二进制,例如 0b11
是 3)和 0o
(八进制,例如 0o11
是 9) .
我正在审查代码,他们的作者在其中做了类似的事情
const emojis: Array<Icon | undefined> | undefined = emojiSet
.map((emoji) => {
if (emoji.name && emoji.unified) {
const codePoints = emoji.unified
.split("-")
.map((token) => Number("0x" + token));
return {
name: emoji.name,
value: String.fromCodePoint(...codePoints),
index: emoji.unified,
};
}
return undefined;
})
.filter(Boolean);
为了理解代码,我浏览了这个 repo(这是上面用来迭代 json 的内容)
这里,在例子中统一为 "unified": "261D-FE0F",
当他这样做时,
const codePoints = emoji.unified
.split("-")
.map((token) => Number("0x" + token));
他正在遍历 261D-FE0F
并将其映射到数字 .map((token) => Number("0x" + token));
[问题]这里我无法理解他为什么要在数字后面加上“牛”?我们如何使用 unicode 确定这将是表情符号?
这是来自 wiki 的 unicdoe blocks(如果它与我的问题有关的话)
因为数字是十六进制的。 0x
是用于表示十六进制数的前缀。 Number("261D")
是 NaN
,但 Number("0x261D")
是 9757。
JavaScript 中可用的其他前缀是 0b
(二进制,例如 0b11
是 3)和 0o
(八进制,例如 0o11
是 9) .