振作精神,努力更新!
先定个小目标,每周更新3篇内容!
本周:2022 - 06 - 13 ~ 2022 - 06 - 19 ( 第三篇 )
-
Unicode 表示字符
允许采用\uxxxx
形式表示一个字符,
xxxx
表示字符的 Unicode 码点。
"\u0061" // "a"
只限于码点在\u0000
~\uFFFF
之间的字符。
// 超出则采用双字节:
"\uD842\uDFB7" // "𠮷"
// 下方写法 js 执行为 \u20BB + 7
// 前者不可打印,表现为 空格
"\u20BB7" // " 7"
ES6 改进写法:
'\u{20BB7}' // "𠮷"
-
字符串遍历器接口
字符串可以被for...of
循环遍历。
该遍历器最大优点是可识别> 0xFFFF
的码点。
-
直接输入 U + 2028 和 U + 2029
JavaScript 规定有5个字符,不能在字符串里面直接使用,只能使用转义形式。
-
U+005C:反斜杠(reverse solidus)
-
U+000D:回车(carriage return)
-
U+2028:行分隔符(line separator)
-
U+2029:段分隔符(paragraph separator)
-
U+000A:换行符(line feed)
注意:
-
JSON 格式允许字符串里有 U+2028 和 U+2029
-
服务器输出的 JSON 被
JSON.parse
解析,有可能直接报错。
-
JSON。stringfy() 的改造
JSON 数据必须是 UTF-8 编码。
JSON.stringify()
方法有可能返回不符合 UTF-8 标准的字符串。
ES2019 JSON.stringify()
遇到0xD800
到0xDFFF
之间的单个码点,或者不存在的配对形式,返回转义字符串。
JSON.stringify('\u{D834}')
// ""\\uD834""
-
模板字符串
使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
`${x} + ${y} = ${x + y}`
`foo ${fn()} bar`
let func = (name) => `Hello ${name}!`;
-
标签模板
alert`hello`
// 等同于
alert(['hello'])