js中的字符串的length的知识点。

news2025/1/13 10:21:37

unicode字符集

unicode字符集是对世界上绝大部分字符进行编码,一个字符对应一个编码,范围:0x0000-0x10FFFF,可以表示一百多万个字符,其中0x0000-0xFFFF的字符为BMP(基本多语言平面字符集),剩余的字符集为补充字符集包括了(许多常见的emoji字符位于此)。

utf-8,utf-16,uft-32编码方式

这些是对unicode字符集中的字符进行存储传输的编码方式,对于一个unicode码的二进制值,编码方式会以不同的规则将unicode码映射成1~4字节的值。其中
utf-8:会将unicode码以6位为界切割,编码后的值在1-4字节。
utf-16:0x0000-0xFFFFunicode字符不用编码,直接存储,大于这个范围的用一个代理对(2个16位,即2个码元)表示,编码后的值为2或4字节
utf-32: 直接用32位4个字节来存储unicode值,不需要编码。

utf-24不实用,计算机不好处理,性能差,而且节省的空间也不多,所以不编码的方式就用utf-32

JS中的字符串存储方式

js中存储字符的编码方式用的是UTF-16,因此string.length这里的长度指的是16位码元的长度,比如长度是2,说明这个值存储占用了2个码元,2*16=32位,4个字节。

字符串的其他方法:

  • string.length,字符串有多少个码元。
  • string.charAt(),第n个码元的unicode的字符。
  • string.charCodeAt(n),第n个码元的unicode的值,十进制
  • string.charPointAt(n),第n个码点的unicode的值,十进制,字符中如果有补充字符集(超过0xFFFF)的字符,需要用这个来获取对于位置的字符。
    当字符中的字符的unicode值在0x0000-0xFFFF时,码点的值就是码元的值,上面的方法都没有差别。大于0xFFFF的unicode字符,如emoji表情,码点的值就不是码元的值了,要注意区别,如下图的emoji表情的length是2.

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大模型从入门到精通34】开源库框架LangChain 利用LangChain构建聊天机器人1

这里写目录标题 利用LangChain构建聊天机器人介绍介绍对话型聊天机器人构建环境环境变量和平台设置 加载文档和创建向量存储高级检索技术对话上下文和记忆纳入聊天历史会话缓冲内存 构建对话检索链环境设置与API密钥配置选择合适的语言模型版本Q&A系统设置 利用LangChain构…

无人机之喊话器的用途

无人机喊话器,俗称无人机扬声器,其用途广泛且多样化,主要体现在以下几个方面: 一、应急救援与指挥 紧急响应与指挥:在自然灾害(如山洪、火灾、地震等)或突发事件发生时,无人机搭载喊…

iOS App上架审核被拒——2.3.3 - Performance - Accurate Metadata

iOS上架审核被拒——Guideline 2.3.3 - Performance - Accurate Metadata 噢,又被拒了… 文章目录 iOS上架审核被拒——Guideline 2.3.3 - Performance - Accurate Metadata被拒原因解决 被拒原因 大概翻译了下:预览图问题,只因某张预览图加了…

前端开发攻略---在Vue3项目中修改Element-Plus主题色

1、演示 2、安装依赖 npm i use-element-plus-theme -d 3、使用 import { useElementPlusTheme } from use-element-plus-theme const { changeTheme } useElementPlusTheme()const changePrimaryColor () > {// 传入颜色changeTheme(red) } 4、演示代码 <templa…

[godot] 采用状态机时,如何处理攻击时移动?如“冲撞”

这里以‘史莱姆撞击’为例子&#xff0c;将‘空中跃进’定义为伤害帧。&#xff08;见下图&#xff09; 先梳理流程&#xff1a;a.史莱姆原地蓄力(起跳准备)--->b.跳起并移动一段距离(空中跃进)--->c.落地调整 一 当状态机进入‘攻击状态’时&#xff0c;在enter()中…

day40——数据库 sqlite3

1 安装sqlite3数据库以及sqlite3函数库 1&#xff1a;sudo apt install sqlite3 //安装数据库 2&#xff1a;sudo apt install libsqlite3-dev // 安装数据库的函数库 2 什么是数据库 一种存放数据的文件&#xff0c;但是该文件拥有特殊的结构 第一层结构&#xff1a;数据…

存储数据(常量)

常量&#xff1a;用来存储数据&#xff08;不可变&#xff09; 常量不能修改 //常量 const PI:number 3.14 const Name: string "啦啦啦" console.log(名字,Name) console.log(π等于,PI)前面带 后面不带&#xff0c;不然就是打印字符串了

PHPShort轻量级网址缩短程序源码开心版,内含汉化包

需要网址缩短并且想获得更多有关链接点击率和流量的数据分析&#xff0c;那么 PHPShort 可能是一个非常好的选择。PHPShort 是一款高级的 URL 缩短器平台&#xff0c;可以帮助你轻松地缩短链接&#xff0c;并根据受众群体的位置或平台来定位受众。 该程序基于 Laravel 框架编写…

算法——不得不磕!

OK,首先一个小问题——你知道国际大厂通用的筛人方法是什么吗&#xff1f;...... 只有两个&#xff1a; ①算法 Algorithm ②系统设计 SystemDesign 如果你在美国、加拿大&#xff0c;是应届生想找份工作&#xff0c;那么你其它什么都不用考&#xff0c;单单只考算法就够了。至…

科研绘图系列:Python语言时间趋势图

介绍 不同指标在时间上的变化,可以用时间序列线图表示趋势。 加载Python包 import sys import pandas as pd import numpy as np import scipy as sp from scipy import stats import randomimport seaborn as sns import matplotlib.pyplot as plt from matplotl

JavaScript(30)——解构

数组解构 数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法 基本语法&#xff1a; 赋值运算符左侧的[]用于批量声明变量&#xff0c;右侧数组的单元值将被赋值给左侧变量变量的顺序对应数组单元值的位置依次进行赋值操作 const arr [1, 2, 3, 4, 5]const [a, b…

教育部-华为产学合作协同育人项目 | 仓颉编程语言专项

为响应《教育部高等教育司关于调整产学合作协同育人项目运行模式及征集2024年产学合作协同育人项目的通知》号召&#xff0c;华为公司2024年第二批70个项目已发布&#xff0c;其中仓颉编程语言领域共计10个项目&#xff0c;如下所示&#xff0c;通过新工科建设项目&#xff0c;…

Apache CloudStack Official Document 翻译节选(六)

关于 Apache CloudStack 的 概念和专用术语 &#xff08;六&#xff09; Multi-Site Deployment Apache CloudStack可以通过使用多个专职地带&#xff08;即多数据中心&#xff09;扩展为多局点模式。下面的示意图就是一个多局点部署Apache CloudStack的示例。 下图中的数据中…

Linux 软件编程多路复用tcp

1.select的缺点&#xff1a; 1.select监听的文件描述符集合是一个数组&#xff0c;有上限&#xff08;1024个&#xff09; 2.select监听的文件描述符集合在应用层&#xff0c;内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…

Vim youcompleteme Windows 安装保姆级教程

不说废话。 准备 检查 Vim 的 Python 配置 安装好 vim 和 python 后&#xff08;python 必须 ≥ \ge ≥ 3.6&#xff09;&#xff0c;在 cmd 下运行 vim --version会弹出以下窗口。 如果发现 python/dyn 和 python3/dyn 都是 - &#xff08;我不知道只有前者是 能不能运行…

解决nvm切换node版本不成功的问题(包含全网最正确最齐全的nvm安装配置,全网最细最有用的一篇)

废话前言&#xff1a; 因为现在已经接近实习尾声&#xff0c;我已经没有什么事可干了&#xff0c;于是我就从java后端和python转回前端&#xff0c;开始准备写写前端项目 但是当我重新打开那尘封已久的后端项目的时候&#xff0c;有些是之前GitHub拉去下来的vue项目&#xff0…

【I/O多路复用】

基于I/O多路复用的并发编程 I/O实现I/O多路复用select优缺点 pollepoll优点 I/O I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术&#xff08;网络套接字或者文件描述符进行监控&#xff09;。单进程或单线程&#xff0c;允许多个用户对单进程发起连…

virtualbox从u盘启动

1.添加到vboxusers用户组 sudo usermod -G vboxusers -a whoami 2.为u盘设备添加访问权限&#xff0c;注意替换对应的设备文件&#xff0c;我这里是/dev/sdf sudo chmod orw /dev/sdf 3.为u盘创建一个虚拟的硬盘镜像 sudo VBoxManage internalcommands createrawvmdk -fi…

Unity Protobuf3 GC 问题(反序列化)

背景&#xff1a;Unity接入的是 Google Protobuf 3.21.12 版本&#xff0c;排查下来反序列化过程中的一些GC点&#xff0c;处理了几个严重的&#xff0c;网上也有一些分析&#xff0c;这里就不一一展开&#xff0c;默认读者已经略知一二了。 如果下面有任何问题请评论区留言提…

Java开发笔记-mysql语句查询指定索引

今天同事遇到一个奇怪的sql查询的问题&#xff1a;一条sql有时候执行素的很快(0.xxs)&#xff0c;有时候执行很慢(20s)&#xff0c;不知道是什么问题. 猜测&#xff1a;1、是不是第一次执行&#xff0c;被mysql缓存了&#xff1f;后面几次直接拿缓存的结果。 2、是不是网络的原…