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

一、什么是字符

  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. 敏感词过滤
    • 原文:今天天气很好,我们开开心心去上学,今天天气很好
    • 敏感词:好,开心,上学
    • 过滤结果:今天天气很***,我们开心去,今天天气很***

猜你喜欢

转载自blog.csdn.net/weixin_41636483/article/details/135271743