ES6 字符串扩展

振作精神,努力更新!

先定个小目标,每周更新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)

注意:

  1. JSON 格式允许字符串里有 U+2028 和 U+2029

  2. 服务器输出的 JSON 被JSON.parse解析,有可能直接报错。

  • JSON。stringfy() 的改造

JSON 数据必须是 UTF-8 编码。

JSON.stringify()方法有可能返回不符合 UTF-8 标准的字符串。

ES2019 JSON.stringify() 遇到0xD8000xDFFF之间的单个码点,或者不存在的配对形式,返回转义字符串。

JSON.stringify('\u{D834}')
// ""\\uD834""

  • 模板字符串

使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。

`${x} + ${y} = ${x + y}`
`foo ${fn()} bar`
let func = (name) => `Hello ${name}!`;

  • 标签模板

alert`hello`
// 等同于
alert(['hello'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值