带你读书之“红宝书”:第五章 基本引用类型⑥

简介: 带你读书之“红宝书”:第五章 基本引用类型⑥

写在前头

大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。


注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。


思维导图

7e1446840237460dada0a84e2ac30fdb_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


简述

引用类型虽然有点像类,但跟类并不是一个概念。还是得区分开来,引用类型就是一个模子,可以用这个模子造出很多东西。


5.3. 原始值包装类型

41e726b8b1c141a88e9d25044de75318_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


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。



目录
相关文章
|
存储 前端开发 对象存储
一文搞懂Map与Set的用法和区别!
前言 作为前端开发人员,我们最常用的一些数据结构就是 Object、Array 之类的,毕竟它们使用起来非常的方便。往往有些刚入门的同学都会忽视 Set 和 Map 这两种数据结构的存在,因为能用 set 和 map 实现的,基本上也可以使用对象或数组实现,而且还更简单。 但是,存在必然合理,当你真正了解 Map 和 Set 之后,你就会发现它们原来时如此美好!
3183 0
一文搞懂Map与Set的用法和区别!
|
机器学习/深度学习 人工智能 自然语言处理
当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界
本文介绍了阿里云机器学习PAI团队开发的名为ARTIST的中文文图生成模型,该模型融合了知识图谱信息,能够生成更加符合常识的图像。ARTIST基于Transformer架构,将文图生成任务分为图像矢量量化和文本引导的图像序列生成两个阶段。在第一阶段,模型使用VQGAN对图像进行矢量量化;在第二阶段,通过GPT模型并结合知识图谱中的实体知识来生成图像序列。在MUGE中文文图生成评测基准上,ARTIST表现出色,其生成效果优于其他模型。此外,EasyNLP框架提供了简单易用的接口,用户可以基于公开的Checkpoint进行少量领域相关的微调,实现各种艺术创作。
|
JavaScript 前端开发 测试技术
构建一个使用React和Redux的简单在线书店应用。
构建一个使用React和Redux的简单在线书店应用。
145 0
|
JSON 监控 负载均衡
【微服务39】分布式事务Seata源码解析七:图解Seata事务执行流程之开启全局事务
【微服务39】分布式事务Seata源码解析七:图解Seata事务执行流程之开启全局事务
1254 0
【微服务39】分布式事务Seata源码解析七:图解Seata事务执行流程之开启全局事务
|
机器学习/深度学习 数据可视化 Linux
Linux vi/vim编辑器指令与详细用法,gcc的用法(下)
Linux vi/vim编辑器指令与详细用法,gcc的用法
244 0
Linux vi/vim编辑器指令与详细用法,gcc的用法(下)
|
机器学习/深度学习 数据采集 存储
机器学习模型监控(Aporia)(下)
机器学习模型监控 什么是机器学习 (ML) 模型监控? 机器学习监控是一组用于观察生产中的 ML 模型并确保其性能可靠性的技术。 ML模型通过观察数据集中的示例进行训练,并将代表模型在训练任务中表现的好坏的错误最小化。
|
前端开发
前端项目实战240-ant design表格编辑行要按照id编辑
前端项目实战240-ant design表格编辑行要按照id编辑
168 0
|
存储 程序员
ES9的新特性:正则表达式RegExp
ES9的新特性:正则表达式RegExp
cookie方法简单封装
cookie方法简单封装
229 0
cookie方法简单封装
|
弹性计算 负载均衡 容灾
DAY 3 ||SLB负载均衡实践
在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。 本场景通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。
DAY 3  ||SLB负载均衡实践