JavaScript中的Unicode和字符串内部结构

这篇具有很好参考价值的文章主要介绍了JavaScript中的Unicode和字符串内部结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧑‍🎓 个人主页:《爱蹦跶的大A阿》

🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》

JavaScript中的Unicode和字符串内部结构,JavaScript保姆级教程,javascript,开发语言,ecmascript,前端​ 

JavaScript中的Unicode和字符串内部结构,JavaScript保姆级教程,javascript,开发语言,ecmascript,前端

✨ 前言

        在我们的日常生活中,JavaScript已经成为了一种无处不在的编程语言。它的应用范围从简单的网页动画,到复杂的前端框架,再到后端的Node.js,甚至还包括物联网设备。然而,JavaScript并非一成不变,它一直在发展,一直在添加新的特性和功能。今天,我们将探讨JavaScript中的一个重要的概念:Unicode和字符串内部结构。在这篇文章中,我们将详细介绍Unicode,包括它的定义、使用方法、代理对,以及如何在不支持Unicode的浏览器中进行polyfill。

JavaScript中的Unicode和字符串内部结构,JavaScript保姆级教程,javascript,开发语言,ecmascript,前端

✨ 正文

Unicode和字符串

        JavaScript字符串基于Unicode:每个字符由1-4字节的字节序列表示。JavaScript允许我们通过指定其十六进制Unicode代码将字符插入字符串,有以下三种表示法:

// \xXX
// XX必须是两个十六进制数字,值在00和FF之间,然后\xXX是Unicode代码为XX的字符。
alert( "\\x7A" ); // z
alert( "\\xA9" ); // ©, 版权符号

// \uXXXX
// XXXX必须是4个十六进制数字,值在0000和FFFF之间,然后\uXXXX是Unicode代码为XXXX的字符。
alert( "\\u00A9" ); // ©, 与\xA9相同,使用4位十六进制表示法
alert( "\\u044F" ); // я, 西里尔字母
alert( "\\u2191" ); // ↑, 向上箭头符号

// \u{X…XXXXXX}
// X…XXXXXX必须是1到6字节的十六进制值,介于0和10FFFF之间(Unicode定义的最高代码点)。
alert( "\\u{20331}" ); // 佫, 罕见的中文字符(长Unicode)
alert( "\\u{1F60D}" ); // \uD83D\uDE0D, 笑脸符号(另一个长Unicode)

代理对

        所有常用字符都有2字节代码(4个十六进制数字)。大多数欧洲语言的字母、数字以及基本统一的CJK表意文字集(CJK – 来自中文、日文和韩文的书写系统)都有2字节表示。最初,JavaScript基于只允许每个字符2字节的UTF-16编码。但是2字节只允许65536种组合,这对于所有可能的Unicode符号来说是不够的。因此,需要超过2字节的罕见符号用一对2字节字符编码,称为“代理对”。

alert( '\uD835\uDCB3'.length ); // 2, 数学脚本大写X
alert( '\uD83D\uDE02'.length ); // 2, 喜泪的脸
alert( '\uD867\uDDF6'.length ); // 2, 罕见的中文字符

Unicode:修饰符 “u” 和类 \p{…}

        JavaScript使用Unicode编码字符串。大多数字符用2字节编码,但这只能表示最多65536个字符。这个范围不足以编码所有可能的字符,这就是为什么一些罕见的字符用4字节编码,例如\uD835\uDCB3(数学X)或\uD83D\uDE04(笑脸),一些象形文字等等。

alert('\uD83D\uDE04'.length); // 2
alert('\uD835\uDCB3'.length); // 2

        默认情况下,正则表达式也将4字节的“长字符”视为一对2字节的字符。并且,就像字符串一样,这可能会导致奇怪的结果。我们稍后会在文章Sets and ranges […]中看到这一点。与字符串不同,正则表达式有修饰符u,可以解决这些问题。有了这个修饰符,正则表达式可以正确处理4字节字符。并且还可以使用Unicode属性搜索,我们接下来会讲到。

 

let str = "A ბ ㄱ";
alert( str.match(/\p{L}/gu) ); // A,ბ,ㄱ
alert( str.match(/\p{L}/g) ); // null (没有匹配项,\p在没有修饰符"u"的情况下不起作用)

        Unicode的每个字符都有很多属性。它们描述了字符属于哪个“类别”,包含了关于它的各种信息。例如,如果一个字符有Letter属性,那么它就属于字母(任何语言)。Number属性表示它是一个数字:可能是阿拉伯数字或中文数字等等。我们可以搜索具有某个属性的字符,写作\p{…}。要使用\p{…},正则表达式必须有修饰符u。

let regexp = /\p{Sc}\d/gu;
let str = `Prices: $2, €1, ¥9`;
alert( str.match( regexp) ); // $2,€1,¥9

        希望这个概述能帮助你理解JavaScript中的Unicode和字符串内部结构,并为你的博客文章提供一个良好的起点。如果你需要更多的信息或者对某个部分有更深入的问题,欢迎随时向我提问!

✨ 结语

        JavaScript的Unicode和字符串内部结构为我们打开了一个全新的世界,让我们能够在JavaScript中处理任意大小的字符。虽然Unicode在一些方面与常规的字符有所不同,但是只要我们理解了这些差异,并知道如何正确地使用Unicode,我们就能够充分利用它的强大功能。无论你是正在处理大数据,还是在进行高精度计算,Unicode都能够提供强大的支持。希望这篇文章能够帮助你理解和掌握JavaScript中的Unicode和字符串内部结构,让你在编程的道路上更进一步。如果你有任何问题或者需要更深入的讨论,欢迎随时向我提问!

JavaScript中的Unicode和字符串内部结构,JavaScript保姆级教程,javascript,开发语言,ecmascript,前端文章来源地址https://www.toymoban.com/news/detail-818605.html

到了这里,关于JavaScript中的Unicode和字符串内部结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaScript数据结构与算法】字符串类(计算二进制子串)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力 n 年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目

    2024年02月05日
    浏览(46)
  • JavaScript从入门到精通系列第二十八篇:详解JavaScript中的字符串的方法

      文章目录 前言 一:String中的方法 1:获取字符串的长度 2:返回指定位置的字符 3:返回指定位置的字符Unicode编码 4:返回指定位置的字符Unicode编码  二:比较常用的 1:连接两个字符串 2:检索一个字符串中指定内容  3:从后检索一个字符串中指定内容   4:截取字符串

    2024年02月06日
    浏览(55)
  • 数据结构与算法之字符串: Leetcode 557. 反转字符串中的单词 III (Typescript版)

    翻转字符串中的单词 III https://leetcode.cn/problems/reverse-words-in-a-string-iii/ 描述 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 示例 2: 提示: 1 = s.length = 5 * 1 0 4 10^4 1 0 4 s 包含可打印的 ASCII 字符。 s 不包含任何开头或

    2024年02月01日
    浏览(76)
  • JavaScript从入门到精通系列第三十一篇:详解JavaScript中的字符串和正则表达式相关的方法

      文章目录 知识回顾 1:概念回顾 2:正则表达式字面量 一:字符串中正则表达式方法 1:split 2:search 3:match 4:replace         正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。

    2024年01月17日
    浏览(58)
  • 【学到一个新名词】String interning(字符串驻留/字符串内部化)

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在阅读 VictoriaMetrics v1.95.1 的命令行手册的时候,发现这样一段: 什么是 String interning 呢?我通过了 wiki 链接学习了一下。 并且,我还找到了一个使用 String interning 技术

    2024年02月05日
    浏览(63)
  • 在 JavaScript 中生成随机字符串/字符

    我想要一个由从集合 [a-zA-Z0-9] 中随机挑选的字符组成的 5 个字符的字符串。 使用 JavaScript 执行此操作的最佳方法是什么? huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。 一个优秀的自由职业者,应该有对

    2024年02月16日
    浏览(46)
  • 3 JavaScript字符串操作

    3 字符串操作 常用的字符串操作相关的方法: 关于null和undefined. 这两个会很容易混. 可以这样来记. null就是空对象. undefined就是空变量. 两者都可以表示空. 啥也没有. 本质其实是一样的. 都啥也干不了. 两者都可以当做false来看待就好了. 代码的效果图如下:

    2024年02月12日
    浏览(45)
  • JavaScript字符串常用方法

    ●我们操作字符串,也有一堆的方法来帮助我们操作 ●字符串和数组有一个一样的地方,也是按照索引来排列的 ●注意:所有字符串常用方法, 都不会改变原始字符串, 都是以返回值的形式出现结果 ●作用:charAt() 是找到字符串中指定索引位置的内容返回 ●语法:字符串.

    2024年02月17日
    浏览(50)
  • javaScript——json字符串详解

    本篇文章将讲解,什么是 json字符串 , json字符串 与字符串数组的相互转换, json字符串 与字符串数组的区别 JSON 字符串(JSON String)是一种特定格式的文本字符串,用于表示数据。JSON 是 JavaScript Object Notation 的缩写,它是一种轻量级的数据交换格式,通常用于将数据从一个

    2024年02月08日
    浏览(42)
  • JavaScript:字符串的相关方法

    字符串的所有实例方法,都可以通过基本数据类型字符串去调用 字符串其本质就是一个字符数组 str.length 获取字符串的长度 str[index] 获取指定位置的字符 endsWith() - 检查字符串是否以指定内容结束 startsWith() - 检查字符串是否以指定内容开始 练习1: 获取用户输入的任意字符串

    2024年01月16日
    浏览(108)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包