当前位置: 首页 >文章 > JavaScript - Unicode转义序列与标准化
收藏
分享

JavaScript - Unicode转义序列与标准化

举报李游Leo李游Leo发布于 2021-05-021148阅读0点赞
Unicode可以允许我们使用多种方法对一个字符进行编码...


JavaScript中的Unicode的转义序列

在有些老旧技术时计算机硬件或者软件里,可能存在无法显示或者输入Unicode字符全集。为了支持使用那些老旧技术的程序员,于是 JavaScript 定义了一种特殊的序列,使用6个 ASCII 字符来表示任意16位Unicode内码。这些转移序列均以\u为前缀,后面跟随4个十六进制数,当然它的使用数字以及大写或小写的A~F表示)。这种Unicode的转义写法可以直接作用在JavaScript字符串的中的变量或者正则表达式中的直接量的标识符中,当然关键字除外。

在上述小例子中,我们可以看到这种转义完全可以作用于字符串中,当然我们也可以直接使用全等式,来看到他们的结果是一样的,例如:

甚至我们还可以直接使用其作为变量名称,并且再利用其或者转义的值进行输出也是可以的,例如:

当然Unicode转义写法也可以出现在注释中,不过由于JavaScript的机制在执行时会自动将注释忽略,所以它们显示的时候还只是被当成上下文中的ASCLL字符处理,并且不会被自动解析转义为相对应的Unicode字符。


JavaScript中的Unicode的标准化

Unicode可以允许我们使用多种方法对一个字符进行编码。我们还拿上文中提到的字符“é”来举例子,我们可以使用“\u00e9”来表示,除此之外我也可以使用普通的ASCLL字符e跟随一个字调符“\u0301”来完成,例如:

虽然这么看似输出结果一样,但是它们的二进制编码表示并不是一样的,所以在计算机里面也并不相等,例如:

这是因为Unicode标准为所有的字符定义了一个首选的编码格式,并给予了一个标准化的处理方式将文本直接转化为一种比较适合的标准格式,JavaScript 会认为它正在解析的程序代码已经为这种标准格式了,所以不会再去对其标示符、字符串或者正则表达式作标准化处理,而以其他方式输出的程序代码 JavaScript 会再次进行转义处理,这就会导致虽然输出看似一样,但是实际内容并不一样。



本文原创,未经作者允许不可转载!

更多内容,欢迎关注作者微信公众号:李游Leo老师前端讲堂



0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,673人)

电商海报设计训练营
距离开班仅剩6天73人已报名
【5月】零基础手绘插画训练营
距离开班仅剩6天68人已报名
【5月】零基础动态表情包创作训练营
距离开班仅剩23天16人已报名
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了29,770
并提交了155份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证