ES6字符串的扩展

    科技2025-11-10  6

    字符串的扩展

    一,ES6 加强了对 Unicode 的支持,允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。(\uxxxx表示一个字符,后加字符的四位码点) "\uD842\uDFB7" // "𠮷" "\u20BB7" // " 7"

    上面代码表示,如果直接在\u后面跟上超过0xFFFF的数值(比如\u20BB7),JavaScript 会理解成\u20BB+7。由于\u20BB是一个不可打印字符,所以只会显示一个空格,后面跟着一个7。 ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。

    "\u{20BB7}" // "𠮷" "\u{41}\u{42}\u{43}" // "ABC" let hello = 123; hell\u{6F} // 123 '\u{1F680}' === '\uD83D\uDE80' // true 二,for…of可以遍历字符串 比如for(let a of “hello”){console.log(a);} 打印出hello各个字母 for(let a of “hello”){ console.log(a); //'h','e','l','l','e' } 三,模板字符串现在就允许直接输入 U+2028 和 U+2029 const PS = eval("'\u2029'"); const PS = eval("'\u2028'"); //不会报错 四,JSON.stringify() 的改造 为了确保返回的是合法的 UTF-8 字符,ES2019 改变了JSON.stringify()的行为。如果遇到0xD800到0xDFFF之间的单个码点,或者不存在的配对形式,它会返回转义字符串,留给应用自己决定下一步的处理。 JSON.stringify('\u{D834}') // ""\\uD834"" JSON.stringify('\uDF06\uD834') // ""\\udf06\\ud834""
    Processed: 0.014, SQL: 9