第八章 javascript字符(string)的介绍和使用

文章目录

  • 一、什么是字符
  • 二、什么是包装数据类型(了解)
  • 三、创建字符串
  • 四、字符串操作
  • 五、字符编码和字符集
      • ASCII(as key) 字符集(了解)
      • unicode 编码 ***
      • 国标编码GBK(汉字内码扩展规范)
      • 字符编码的转换
  • 六、练习

一、什么是字符

  1. 字符是一种数据类型,是一种原始数据,typeof结果为string
    • 标志为引号:单引号’,双引号",反引号`
    • 其中 单双引号内不支持回车换行,反引号内支持
    • 反引号内还支持使用${}解析变量
      • 如:这次考试成绩第一名为${ firstName }同学
  2. 字符串就是连续的字符序列,可以由任意字符组成。字符串的每个字符都占用一个字节

二、什么是包装数据类型(了解)

  1. 在js的基本数据类型中,有3个特殊的存在:stringnumberboolean
  2. 数据存储时,都是以基本数据类型的形式进行存储
  3. 当使用它时,会瞬间转换成 复杂数据类型 的形式被我们使用
  4. 使用完毕后,瞬间转换成 基本数据类型 的形式进行存储
  5. 这3个基本类型都有自己对应的包装对象。包装对象其实就是对象,有相应的属性和方法。调用方法的过程是在偷偷发生的,所以我们成为基本包装类型
    • 字符对象:new String()
    • 数值对象:new Number()
    • 布尔对象:new Boolean()

三、创建字符串

  1. 字面量:var str = '值'
var str1 = 'hello world';
console.log(str1);
console.log(typeof str1);
  1. 内置构造函数创建:var str = new String("值")
var str1 = new String("hello world");
console.log(str1);
console.log(typeof str1);
  1. 区别:构造函数创建出来的数据为字符对象,typeof的结果为object,但是可以作为正常字符使用

四、字符串操作

  • 字符不允许任何方式修改自身,都是以返回值的形式出现结果
  1. 原理操作:索引 + length
    • 字符串中的每个字符采用了类似于数组中数据的存储方式,有索引和长度
    • 长度:str.length
    • 索引:str[index]
      • 索引从0开始,到length-1结束
  • 方法操作
    • 功能,参数,返回值
    • str.indexOf()
    • str.charAt()
    • str.slice()
    • str.substr()
    • str.substring()
    • str.split()
    • str.replace()
    • str.toUpperCase()
    • str.toLowerCase()
    • str.trim()
    • str.trimStart()str.trimLeft()
    • str.trimEnd()str.trimRight()
    • str.repeat()
    • str.startsWith()
    • str.endsWith()
    • str.includes()

五、字符编码和字符集

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

  1. 我们都知道,计算机只能存储 0101010 这样的二进制数字
  2. 那么我们的 a ~ z / A ~ Z / $ / @ /… 之类的内容也有由二进制数字组成的
  3. 我们可以简单的理解为, a ~ z / A ~ Z / $ / @ /… 之类的内容都有一个自己的编号,在计算机存储的时候,是存储的这些编号,呈现给用户时,这些编号再解析成人类能识别的符号
  4. 美国将自己会用到的字符分别设定了对应的编号,并在计算机中使用,我们称这套编号叫ASCII 字符集(美国信息交换标准代码)
  5. 以下就是 ASCII 对照表:


unicode 编码 ***

  1. 我们看到了,ASCII 只有这 128 个字符的编码结构。但是因为 ASCII 出现的比较早,而且是美国发明的,只需要存储一些英文的内容,传递一些英文的文章什么的都够用了
  2. 那么对于这个世界来说肯定是不够用的,至少我们的中文没有办法存储,包括其他国家的语言也没有办法存储
  3. 所以就出现了 unicode 编码,也叫(万国码,统一码)
  4. unicode 对照表就是一个和 ASCII 一样的对照表,只不过变得很大,因为存储的内容特别的多
  5. 而且包含了世界上大部分国家的文字,所以我们的文字和字符现在在存储的时候,都是按照 unicode 编码转换成数字进行存储
  6. 我们的 UTF-8 就是一种 8 位的 unicode 字符集

国标编码GBK(汉字内码扩展规范)

  1. 国标码是汉字的国家标准编码,目前主要有GB2312、GBK、GB18030三种。
  2. GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。
  3. GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。
  4. GB18030编码方案于2000年发布第一版,收录汉字27533个;2005年发布第二版,收录汉字70000余个,以及多种少数民族文字。GB18030采用单字节、双字节、四字节分段编码。

字符编码的转换

  • 字符转编码:str.codePointAt(索引)
  • 编码转字符:String.fromCodePoint(参数)
    • 参数:0x开头的十六进制,十进制,不支持\u的字符编码

六、练习

  1. 字符去重,封装函数,返回去重之后的字符
  2. 统计字符串中每个字符出现的次数,以对象存储结果,封装函数,返回对象
    • “aabccc”
    • { a:2, b:1, c:3 }
  3. 判断字符串是否是回文字符串,封装函数,返回布尔值
    • xxx(“abccba”); // true
    • xxx(“abcba”); // true
    • xxx(“abcde”); // false
    • xxx(“abccda”); // false
  4. 敏感词过滤
    • 原文:今天天气很好,我们开开心心去上学,今天天气很好
    • 敏感词:好,开心,上学
    • 过滤结果:今天天气很***,我们开心去,今天天气很***

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

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

相关文章

UEFI模拟环境搭建——windows+EDKII

目录 0 说明 1 安装软件 1.1 VS2019的安装 1.2 Python的安装 1.3 IASL的安装 1.4 NASM的安装 1.5 git的下载 2 EDKII的下载 3 配置环境 0 说明 个人感觉UEFI的环境搭建非常复杂,在经过很长一段折磨后,终于还是搭建成功,写下来记录一…

YOLOv8训练自定义数据集和运行参数解读

1、YOLOv8深度学习环境搭建及安装 1.1. Yolov8介绍 设置操作类型 YOLOv8模型可用于各种任务,包括检测、分割和分类。这些任务的不同之处在于它们产生的输出类型和它们要解决的特定问题。 **检测:**检测任务涉及识别和定位图像或视频中感兴趣的对象或区域。YOLO模…

0基础学习VR全景平台篇第132篇:曝光三要素—快门速度

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 经过前面两节课的学习我们认识了曝光三要素中的感光度和光圈,这节课我们将一同去了解影响曝光的最后一个要素——快门速度。 (曝光三要素:感光度、光圈、…

所有逐个位置相加的方法

989. 【加法模板】秒杀所有逐位相加 参考教程

算法设计与分析 | 矩阵连乘

题目描述 一个n*m矩阵由n行m列共n*m个数排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个N*M的矩阵乘以一个M*P的矩阵等于一个N*P的矩阵,运算量为nmp。 矩阵乘法满足结合律,A*B*C可以表示成(A*B)*C或者是A*(B*C),两者的运算…

CSS 纵向扩展动画

上干货 <template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container&q…

JavaSE50题:26. (数组练习题)使奇数位于偶数之前

概述 调整数组顺序使得奇数位于偶数之前&#xff0c;调整之后&#xff0c;不关心大小顺序。 如数组&#xff1a;{1,2,3,4,5,6} 调整后可能是&#xff1a;{1&#xff0c;5&#xff0c;3&#xff0c;4&#xff0c;2&#xff0c;6} 方法 定义 left 和 right&#xff0c;二者分别…

K8S结合Prometheus构建监控系统

一、Prometheus简介 Prometheus 是一个开源的系统监控和警报工具&#xff0c;用于收集、存储和查询时间序列数据。它专注于监控应用程序和基础设施的性能和状态&#xff0c;并提供丰富的查询语言和灵活的告警机制1、Prometheus基本介绍 数据模型&#xff1a;Prometheus 使用时…

48道Linux面试题

本博客将汇总 Linux 面试中常见的题目&#xff0c;并提供详细的解答。 文章目录 1、绝对路径用什么[符号表](https://so.csdn.net/so/search?q符号表&spm1001.2101.3001.7020)示&#xff1f;当前目录、上层目录用什么表示&#xff1f;主目录用什么表示? 切换目录用什么命…

【MyBatis-Plus】进阶之乐观锁、悲观锁逻辑删除分页和查询构造器的使用

目录 一、乐观锁、悲观锁 1、什么是乐观锁和悲观锁 ①乐观锁&#xff08;Optimistic Locking&#xff09;: ②悲观锁&#xff08;Pessimistic Locking&#xff09;: ③实现方式 2、乐观锁和悲观锁的区别 ①乐观锁&#xff08;Optimistic Locking&#xff09; ②悲观锁&…

【JavaEE】多线程(6) -- 定时器的使用及实现

目录 定时器是什么 标准库中的定时器的使用 实现定时器 定时器是什么 Java中的定时器是一种机制&#xff0c;用于在预定时间执行某个任务。它允许开发人员在指定的时间间隔内重复执行任务&#xff0c;或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具&#xf…

图分割算法之贪心算法

1 贪心算法的思想 Linear Deterministic Greedy partitioning (LDG)考虑在分割的时候将邻居结点放置在一起&#xff0c;以减少切割边。它采用贪心算法将一个结点放置在包含其邻居最多的子图中&#xff0c;同时保证每个子图的结点负载均衡&#xff0c;整个算法流程图如下其中 C …

单文件超过4GB就无法拷贝到U盘?这个你一定要知道

前言 随着现在科技发展&#xff0c;小伙伴们所使用的数据也越变越大。还记得WindowsXP流行的时候&#xff0c;XP的镜像文件仅为几百MB大小。 但是现在随便一个系统就有可能超过4GB。 如果单个文件超过4GB就有可能没办法拷贝进U盘&#xff0c;在这里就需要给小伙伴们普及一下U…

用ChatGPT挑选钻石!著名珠宝商推出-珠宝GPT

根据Salesforce最新发布的第五版《互联网购物报告》显示&#xff0c;ChatGPT等生成式AI的出现、快速发展&#xff0c;对零售行业和购物者产生了较大影响。可有效简化业务流程实现降本增效&#xff0c;并改善购物体验。 著名珠宝商James Allen为了积极拥抱生成式AI全面提升销售…

vue2使用svg图片

1、安装依赖包&#xff1a; npm install svg-sprite-loader --save-dev 2、新建assets/icons/svg中放置svg图片和index.js文件 svgo.yml文件 index.js import Vue from vue import SvgIcon from /components/SvgIcon// svg component// register globally Vue.component(sv…

antd中DatePicker禁选范围如何设置

1、解决日期禁选问题 在官方api中也提到&#xff0c;可以设置disabledDate来实现日期的禁选 语法&#xff1a; js中定义disabledData函数 const disabledDate (current) > { 设置禁选范围 } 在DatePicker 标签中引入 同时我们要知道antd是默认使用moment.js来实现日期格式…

【ES】es介绍

倒排索引&#xff08;Inverted Index&#xff09;和正排索引&#xff08;Forward Index&#xff09; 正排索引是一种以文档为单位的索引结构&#xff0c;它将文档中的每个单词或词组与其所在的文档进行映射关系的建立。正排索引通常用于快速检索指定文档的内容&#xff0c;可以…

Python列表数据处理全攻略(三):常用内置方法轻松掌握

文章目录 引言Python列表常用内置方法count()功能介绍语法示例注意事项 index()功能介绍语法示例注意事项&#xff1a; insert()功能介绍语法示例注意事项总结 结束语 引言 亲爱的读者&#xff0c;你好&#xff01;Python的列表在数据结构中占据着核心地位&#xff0c;对于学习…

k8s-cni网络 10

Flannel vxlan模式跨主机通信原理 在同一个节点上的pod 流量通过cni网桥可以直接进行转发&#xff1b; 在需要跨主机访问时&#xff0c;数据包通过flannel(隧道) 知道另一边的mac地址&#xff0c;就可以拿到另一边的ip地址&#xff0c;然后构建常规的以太网数据包&#xff0c;…

github登录需要双因素认证(Two-factor authentication)

前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 github登录需要双因素认证&#xff08;Two-factor authentication&#xff09; 今天登录github发现需要绑定双因素才能够登录 我们…