JavaScript字符串操作

news2024/11/24 16:59:12

ASCII(as key) 字符集(了解)

我们都知道,计算机只能存储 0101010 这样的二进制数字,那么我们的 a ~ z / A ~ Z / $ / @ /… 之类的内容也有由二进制数字组成的

我们可以简单的理解为, a ~ z / A ~ Z / $ / @ /… 之类的内容都有一个自己的编号,然后在计算机存储的时候,是存储的这些编号,我们看的时候,也是通过这些编号在解析成我们要看到的内容给我们看到

image.png

image.png

unicode 编码

我们看到了,ASCII 只有这 128 个字符的编码结构,但是因为 ASCII 出现的比较早,而且是美国发明的,早先时候这些内容就够用了

因为存储一些英文的内容,传递一些英文的文章什么的都够用了,那么对于这个世界来说肯定是不够用的 。因为我们的汉字没有办法存储,包括一些其他国家的语言也没有办法存储

所以就出现了 unicode 编码,也叫(万国码,统一码)

unicode 对照表就是一个和 ASCII 一样的对照表,只不过变得很大很大,因为存储的内容特别的多,而且包含了世界上大部分国家的文字,所以我们的文字和字符现在在存储的时候,都是按照 unicode 编码转换成数字进行存储

我们的 UTF-8 就是一种 8 位的 unicode 字符集

国标编码GBK

国标码是汉字的国家标准编码,目前主要有GB2312、GBK、GB18030三种。GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。

GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。

GB18030编码方案于2000年发布第一版,收录汉字27533个;2005年发布第二版,收录汉字70000余个,以及多种少数民族文字。GB18030采用单字节、双字节、四字节分段编码。

字符串

什么是字符串

字符串是一种数据类型,是连续的字符序列,由数字,字母和符号组成。在字符串的每个字符只占用一个字节,在JS内用单引号、 双引号或者反引号(ES6中称为模板字符串)包裹

什么是包装数据类型

存储的时候, 是以基本数据类型的形式进行存储,当你使用它的时候, 会瞬间转换成复杂数据类型的样子让你使用

等你使用完毕, 瞬间转换成基本数据类型的形式进行存储

在基本数据类型中有3个特殊的存在:String Number Boolean

这3个基本类型都有自己对应的包装对象。包装对象其实就是对象,有相应的属性和方法。调用方法的过程是在偷偷发生的,所以我们称为基本包装类型

创建字符串

我们创建字符串也分为两种方法 字面量构造函数

字面量: var 变量名 = ‘值’

// 字面量的方式创建字符串 
var str = 'hello world' 
var str1 = "hello world" 
console.log(typeof str) 
console.log(typeof str1)

内置构造函数创建

// 内置构造函数的方式创建字符串 
var str2 = new String('hello world') 
console.log(str2); 
console.log(typeof str2); 
console.log(str === str1); 
console.log(str == str2);

字符串操作

length 属性操作

length属性是一个 只读 的属性, 只能获取不能设置

读取

■语法:字符串.length

○返回值:获取到的就是该字符串的长度, 也就是字符串有多少个字符组成

○注意:空格也是一个字符,中文也是一个字符

// 创建一个字符串 
var str = 'hello world' 
console.log('原始数据 : ', str); 
// length 属性 
var s1 = str.length 
console.log(s1);

索引属性操作

○是一个 只读 的属性, 只能获取不能设置

读取

■语法:字符串[索引]

○返回值:获取到的就是该字符串指定索引位置的那一位字符

■如果有该索引位置, 那么就是该索引位置的字符

■如果没有该索引位置, 那么就是 undefined

○索引从0开始,依次加1

// 创建一个字符串 
var str = 'hello world' 
console.log('原始数据 : ', str); 
// 索引 
var res = str[4] // 0 
console.log(res); 
var res1 = str[100] 
console.log(res1); // undefined

遍历

// 定义一个字符串 
var str = 'hello world' 
// 遍历 
for (var i = 0; i < str.length; i++) { 
     console.log(str[i])
}

案例–统计字符出现的次数

var str = 'abcabcsghgjgfdgdfhfhdsfsdgsh' 
// 我们要有个对象 
var obj = {} 
// 循环遍历该字符串 
for (var i = 0; i < str.length; i++) { 
    // console.log(str[i]); 
    // 我们拿到了字符串中的每一项,我们要把这个当做我们对象的键 
    // 因为我们后面要多次用到每一项所以我们可以单独用一个变量接收一下 
    var s = str[i] 
    // 我们是不是要先看看我们的对象里面有没有这个数据,如果有我们就让它++就好 
    // 如果没有我们就给它添加一个 
    // 问题来了: 如何判断对象里面有没有,如果对象里面没有这个键 返回的是undefined
    console.log(obj.a); 
    if (obj[s] === undefined) { 
        obj[s] = 1
    } else { 
        obj[s]++ 
    } 
} 
console.log(obj);

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

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

相关文章

浅谈文心一言

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

[oeasy]python0140_导入_import_from_as_namespace_

导入import 回忆上次内容 上次学习了 tryexcept 注意要点 半角冒号缩进输出错误信息 有错就报告 不要隐瞒否则找不到出错位置还可以用traceback把 系统报错信息原样输出 但是代码量好多啊 10多 行了 &#x1f92f;可以把他输入部分和输出部分么&#xff1f;&#x1f914; 我…

【计算机组成原理】第四章 指令系统

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录前言第四章 指令系统4.1 指令系统的发展与性能要求4.1.1 指令系统的发展4…

CTR-GCN 代码理解

论文代码&#xff1a;https://github.com/Uason-Chen/CTR-GCN ctrgcn.py 文件路径&#xff1a;CTR-GCN/model/ctrgcn.py import math import pdbimport numpy as np import torch import torch.nn as nn from torch.autograd import Variabledef import_class(name):compone…

动态设置图片的主题色(保留明暗关系)

github地址 PrimaryColorDemo 效果 原始图片 就是一张普通的png图片 根据选择的主题色动态渲染。 思考 最近在思考怎么实现动态的设置图片的主题色。不是那种渲染透明iocn。而是把图片的明暗关系保留。而改变其中的主题色。终于花了半天的时间研究出来了。和大家共享。 …

AI对话AI才是正解?KAUST研究团队提出基于角色扮演的大模型交互代理框架CAMEL

电影《盗梦空间》中有这样一句非常经典的台词&#xff1a; “世上最具有可塑性的寄生虫是什么&#xff1f;是人类的想法。人类大脑中一个简单的想法&#xff0c;就可以建立一座庞大的城市。有时一个想法也可以改变世界&#xff0c;并改写一切规则&#xff0c;这就是我为什么要…

0703齐次方程-微分方程

文章目录 1 定义和解法1.1 定义1.2 微分方程中的变量替换1.3 齐次方程的解法 2 例题结语 1 定义和解法 1.1 定义 形式上可化为 d y d x g ( y x ) \frac{dy}{dx}g(\frac{y}{x}) dxdy​g(xy​)的方程&#xff0c;称为齐次方程。 例如 d y d x y x tan ⁡ y x , d y d x e y…

操作系统考试复习—第二章 2.1 2.2程序和进程的描述

第二章 进程的描述与控制 程序&#xff1a;有序的指令集合 程序顺序执行的特征&#xff1a;1.顺序性 2.封闭性 3.可再现性(确定性) 在多道程序环境下&#xff0c;允许多个程序并发执行&#xff0c;此时他们将失去封闭性&#xff0c;并具有间断性和不可再现性的特征。为此引…

net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 报错

一、问题描述 最近现场实施人员反馈有个功能不能正常使用&#xff0c;F12查看浏览器的控制台&#xff0c;提示net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)的错误&#xff0c; HTTP状态码206表示“部分内容”&#xff08;Partial Content&#xff09;&#xff0c;…

全网最细,Jmeter性能测试-分布式压力测试环境搭建(超详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 JMeter设计之初是…

【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手

目录 类型 String 字符串 List 列表 Set 集合 Sorted Set /ZSet 有序集合 Hash 哈希表 GEO 地理空间 HyperLogLog 基数统计 Bitmap 位图 BitField 位域 Stream 流 线上测试地址 常用命令 key 操作指令 String 操作指令 List 操作指令 Set 操作指令 ZSet 操作…

STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期

STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期 目录 STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期1、介绍2、STM32CubeMX配置2.1 基本配置2.2 PWM输出配置2.3 PWM输入捕获配置 3、程序修改和测试 本篇博客以STM32F103C8为例&#xff0c;其他…

selenium_交互 (谷歌浏览器驱动下载 xpath插件安装)

安装selenium &#xff08;1&#xff09;查看谷歌浏览器版本 谷歌浏览器右上角 ‐‐> 帮助 ‐‐> 关于 查看 浏览器版本&#xff1a; &#xff08;2&#xff09;操作谷歌浏览器驱动下载地址 http : // chromedriver . storage . googleapis . com / index . html 找到…

FPGA、 CPU、GPU、ASIC区别

一、为什么使用 FPGA&#xff1f; 众所周知&#xff0c;通用处理器&#xff08;CPU&#xff09;的摩尔定律已入暮年&#xff0c;而机器学习和 Web 服务的规模却在指数级增长。 人们使用定制硬件来加速常见的计算任务&#xff0c;然而日新月异的行业又要求这些定制的硬件可被重新…

2023第十四届蓝桥杯 C/C++大学生A组省赛 满分题解

写在前面 以下代码&#xff0c;目前均可通过民间OJ数据&#xff08;dotcpp & New Online Judge&#xff09;&#xff0c; 两个OJ题目互补&#xff0c;能构成全集&#xff0c;可以到对应链接下搜题提交&#xff08;感谢OJ对题目的支持&#xff09; 如果发现任何问题&…

汽车制造数字化转型如何做?有哪些可行性案例?

引语&#xff1a;砥砺前行的先行者&#xff0c;为长期主义者带去曙光 国内制造企业亟需加速探索数字化转型之路。但是传统软件服务商提供的PLM、MES等系统已经无法满足企业个性化需求。通过传统软件服务商进行二次开发&#xff0c;成本高、周期长&#xff0c;难以适应迅速变化的…

少儿Python每日一题(25):岛屿问题

原题解答 本次的题目如下所示(题目来源:蓝桥杯): 编程实现: 有一片海域划分为N*M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。请问这片N*M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且…

【手把手做ROS2机器人系统开发六】创建用户自定义msg和srv文件

创建用户自定义msg和srv文件 目录 创建用户自定义msg和srv文件 一、程序编写 1、创建软件包 2、创建msg消息和srv服务文件夹 3、定义msg消息示例 4、定义srv服务示例 5、修改和添加编译选项 6、软件包设置 二、程序测试 1、编译软件包 2、测试查询信息 3、测试查询服务…

EasyCVR视频融合平台黑名单功能更新,防止设备恶意注册平台

为了防止别人恶意注册国标设备&#xff0c;EasyCVR视频融合平台也具备拦截设备注册的功能&#xff0c;即通过国标设备ID和注册IP地址进行拦截&#xff0c;也就是黑名单功能。 在3.1版本之前&#xff0c;黑名单的设置是在配置中心—平台接入中&#xff0c;在输入框中添加黑名单I…

在阿里做测试开发的这5年,收获与感悟...

正好在离职交接空档期&#xff0c;就抽空简单分享自己的一些个人经历给大家&#xff0c;希望对刚毕业不久或者工作三五年的同学能有一些帮助。 测试新人 我的职业生涯开始和大多数测试人一样&#xff0c;开始接触都是纯功能界面测试。那时候在一家电商公司做测试&#xff0c;做…