String.fromCodePoint()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
String.fromCodePoint() éææ¹æ³å°æ ¹æ®æå®çç ä½åºåè¿åä¸ä¸ªå符串ã
å°è¯ä¸ä¸
console.log(String.fromCodePoint(9731, 9733, 9842, 0x2f804));
// Expected output: "ââ
â²ä½ "
è¯æ³
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* â¦, */ numN)
åæ°
numN-
ä¸ä¸ªä»äº
0å0x10FFFFï¼å æ¬ä¸¤è ï¼ä¹é´çæ´æ°ï¼è¡¨ç¤ºä¸ä¸ª Unicode ç ä½ã
è¿åå¼
éè¿ä½¿ç¨æå®çç ä½åºåå建çå符串ã
å¼å¸¸
RangeError-
妿
numN䏿¯æ´æ°ãå°äº0æè å¨è½¬æ¢ä¸ºæ°åå大äº0x10FFFFï¼å伿åºè¯¥å¼å¸¸ã
说æ
fromCodePoint() æ¯ String çéææ¹æ³ï¼å æ¤å§ç»ä½¿ç¨ String.fromCodePoint() è°ç¨å®ï¼è䏿¯ä½ä¸ºä½ å建ç String å¼çæ¹æ³ã
Unicode ç ä½èå´ä» 0 å° 1114111ï¼0x10FFFFï¼ãå¨ UTF-16 ä¸ï¼æ¯ä¸ªåç¬¦ä¸²ç´¢å¼æ¯ä¸ä¸ªåå¼èå´ä¸º 0 å° 65535 çç å
ãè¾é«çç ä½ç±ä¸å¯¹ 16 ä½ä»£ç伪å符表示ãå æ¤ï¼fromCodePoint() å¯è½è¿åä¸ä¸ªå符串ï¼å
¶å¨ UTF-16 ç å
ä¸ç length 大äºä¼ éçåæ°ä¸ªæ°ãæå
³ Unicode çæ´å¤ä¿¡æ¯ï¼è¯·åé
UTF-16 å符ãUnicode ç ä½ååç´ ç°ã
示ä¾
>ä½¿ç¨ fromCodePoint()
ææè¾å ¥ï¼
String.fromCodePoint(42); // "*"
String.fromCodePoint(65, 90); // "AZ"
String.fromCodePoint(0x404); // "\u0404" === "Ð"
String.fromCodePoint(0x2f804); // "\uD87E\uDC04"
String.fromCodePoint(194564); // "\uD87E\uDC04"
String.fromCodePoint(0x1d306, 0x61, 0x1d307); // "\uD834\uDF06a\uD834\uDF07"
æ æè¾å ¥ï¼
String.fromCodePoint("_"); // RangeError
String.fromCodePoint(Infinity); // RangeError
String.fromCodePoint(-1); // RangeError
String.fromCodePoint(3.14); // RangeError
String.fromCodePoint(3e-2); // RangeError
String.fromCodePoint(NaN); // RangeError
ä¸ fromCharCode() çæ¯è¾
String.fromCharCode() æ¹æ³æ æ³éè¿æå®å
¶ç 使¥è¿åè¡¥å
å符ï¼å³ç ä½ 0x010000 è³ 0x10FFFFï¼ãç¸åï¼å®éè¦ä½¿ç¨ UTF-16 代ç对æ¥è¿åè¡¥å
å符ï¼
String.fromCharCode(0xd83c, 0xdf03); // ç ä½ U+1F303ï¼å¤æä¸ææï¼=== "\uD83C\uDF03"
String.fromCharCode(55356, 57091);
å¦ä¸æ¹é¢ï¼String.fromCodePoint() å¯ä»¥éè¿æå®å
¶ç ä½ï¼ç¸å½äº UTF-32 ç å
ï¼è¿å 4 个åèçè¡¥å
å符ï¼ä»¥åæ´å¸¸è§ç 2 个åèç BMP å符ï¼
String.fromCodePoint(0x1f303); // æåè¿å¶æ° 127747
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.fromcodepoint> |