「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」
写在前头
大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。
注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。
思维导图
简述
引用类型虽然有点像类,但跟类并不是一个概念。还是得区分开来,引用类型就是一个模子,可以用这个模子造出很多东西。
5.3. 原始值包装类型
5.3.3. String
1. JavaScript 字符
- 码元
大多数字符来说,16位码元对应一个字符。
-
charAt()
返回给定索引位置的字符。
-
Unicode编码
js字符串使用2个Unicode编码混合。
- 官方博文推荐
Mathias Bynens的博文。
- charCodeAt()
通过索引位置查询对应字符的编码。
- fromCharCode()
给定的UTF-16码元创建字符。
-
Unicode增补字符平面
① 代理对
一个字符使用2个16位码元的策略方式。
② 码点
Unicode中一个字符的完整标识。
③ codePointAt()
可以正确的解析单码元字符和代理对字符。
④ fromcodePoint()
接受任意数量的码点,返回一个拼接好的字符串。
2. normalize 方法
-
诞生背景
Unicode字符有很多种编码格式。
编码方式
不同的编码方式也可以表示同样的字符。
判断相等
编码方式不同,但是看起来一样的字符其实并不相等。
- 字符规范化
4种规范化形式
NFD,NFC,NFKD,NFKC
判断字符串是否规范化
①4种比较全是false,未规范化
字符串和调用normalize()方法返回的值比较
②true表明已经规范化
3. 字符串操作方法
- 向后拼接字符串
concat()
let string = "Hello";
let newstring = string.concat("World");
console.log("newstring"); // HelloWorld
不会改变原来字符串。可以接收多个参数。
- 提取子字符串
①参数一个
3个方法一样
返回调用他们的字符串的一个子字符串。
只传入一个参数表示开始位置,从开始位置一直提取到末尾。
②参数2个
slice(),substring()
第二个参数表示结束提取位置,闭区间这个位置也要提取。
substr()
第二个参数表示返回子字符串的数量。
③参数是负数
转换负数,重复原来默认操作
把负数加上length变为正数。再使用下面的规则。
slice()
把所有的负数加上length变为正数。
substring()
所以负参数全部变为0。
会将较小的参数作为提取字符开始的起点。
substr()
第一个负参数加上length变为正数,第二个负参数变0。