好家伙,

本篇内容为《JS高级程序设计》第三章学习笔记

 

1.String类型

字符串类型是最常用的几个基本类型之一

字符串可以使用双引号,单引号以及反引号(键盘左Tab上面那个)标示

  1. let panghu ='panghu';
  2. let kunkun ="kunkun";
  3. let awei =`awei`;
  4. console.log(panghu,kunkun,awei);

 

逆天标识法:

前为单引号,后为双引号

  1. let panghu ='panghu";

 

 

别这么干! 

 

2.字符字面量

字面量      含义

\n             换行

\t    tab缩进

\b      退格

\r    回车

\f    换页

\\    反斜杠(\)

\'    单引号(')

\"    双引号(")

\`    反引号(`)

\xnn    以十六进制编码nn表示的字符

\unnnn     以十六进制编码表示Unicode字符

 

 

3.字符串特点

ECMAScript中的字符串是不可变的,一旦创建,它们的值就不能变了.

要修改某个变量中的字符串值,必须先销毁原始的字符串,然后将包含新值的另一个字符串保存到该变量

然而所有处理都是在后台发生的,

 

 

4.字符串转换方法

4.1.toString()方法

toString()方法可用于数值、布尔值、对象和字符串,值得注意的是null和undefined值没有toString()方法

toString()方法多数情况下不接受参数,

但在对数值调用toString()方法时,可以接受一个参数来表示以什么进制输出

  1. let value_1 =100;
  2. let value_2 =null;
  3. let value_3 =undefined;
  4. console.log(value_1.toString(2));
  5. console.log(value_2.toString());
  6. console.log(value_3.toString());

 

 

4.2.String()方法

String()转型方法几乎可用于任何值

转换规则如下:

(1)如果值由toString()方法,则调用该方法(无参数)并返回结果

(2)null,返回"null"

(3)undefined,返回"undefined"

  1. let value_1 =100;
  2. let value_2 =null;
  3. let value_3 =undefined;
  4. console.log(String(value_1));
  5. console.log(String(value_2));
  6. console.log(String(value_3));

 

 

5.模板字面量

模板字面量正如他的命名一般,在字符串中保留"模板"

我们使用反引号(``)来保存一个模板字面量

  1. let a ="woshi\npanghu";
  2. let b =`woshi
  3. panghu`;
  4. console.log(a);
  5. console.log(b);
  6. console.log(a==b);

 可以看到,我们的"实体回车"被保存了下来

 

6.字符串插值

可以在模板字面量中使用字符串插值,也就是可以在一个连续定义中插入一个或多个值。

 传统插值法:

  1. let num_1 = 3;
  2. let num_2 = 4;
  3. let sum =num_1+'+'+num_2+'='+(num_1*num_2);
  4. console.log(sum);

  

(都什么年代了还在用传统插值法)

在模板字面量中使用字符串插值

  1. let num_1 = 3;
  2. let num_2 = 4;
  3. let sum = `${num_1}+${num_2}=${num_1*num_2}`;
  4. console.log(sum);

 

 上手亲自写一遍,会发现,模板字面量字符串插值法确实好用更多

1.书写逻辑更合理

2.插值表达更清晰

所有插入的值都会使用toString方法强制转型为字符串,而且任何JavaScript表达式都可以用于插值

嵌套的模板字符串无须转义

在插值表达式中可以调用函数和方法:

  1. let panghu = 'panghu';
  2. function makepanghubigger(word){
  3. return`${word.toUpperCase()}`;
  4. }
  5. console.log(`${makepanghubigger('panghu')}`);

 

有趣的是,模板可以插入自己之前的值:

  1. let panghu ="PangHu\t";
  2. function f__k(){
  3. panghu=`${panghu}PangHu\t`;
  4. console.log(panghu);
  5. }
  6. for(let i=1;i<5;i++){
  7. f__k();
  8. }

 

 

7.原始字符串

使用模板字符串可以直接获取原始模板字面量内容,而不是被转换后的字符表示.

为此,可以使用默认的String.raw标签函数

  1. console.log("woshi\npanghu");
  2. console.log(String.raw`woshi\npanghu`);

 

 

 

第一百零九篇:基本数据类型(String类型)的更多相关文章

  1. 第一百零七篇:基本数据类型(undefined,null,boolean类型)

    好家伙, 本篇内容为<JS高级程序设计>第三章学习笔记 1.数据类型 ECMAScript有6种简单数据类型(称为原始类型): Undefined, Null, Boolean, Numb ...

  2. “全栈2019”Java第一百零九章:匿名内部类实现唯一抽象类或接口

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. 第一百零九节,JavaScript面向对象与原型

    JavaScript面向对象与原型 学习要点: 1.学习条件 2.创建对象 3.原型 4.继承 ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标 ...

  4. 第一百零六篇:变量的不同声明(var,let和const的不同)

    好家伙,JS基础接着学, 本篇内容为<JS高级程序设计>第三章学习笔记 1.变量 ECMAScript 变量是松散类型的,意思是变量可以用于保存任何类型的数据. (确实松散,不像C或C++ ...

  5. 【leetcode 简单】 第一百零九题 最小移动次数使数组元素相等

    给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数.每次移动可以使 n - 1 个元素增加 1. 示例: 输入: [1,2,3] 输出: 3 解释: 只需要3次移动(注意每次移动 ...

  6. 第三百零九节,Django框架,models.py模块,数据库操作——F和Q()运算符:|或者、&并且——queryset对象序列化

    第三百零九节,Django框架,models.py模块,数据库操作——F()和Q()运算符:|或者.&并且 F()可以将数据库里的数字类型的数据,转换为可以数字类型 首先要导入 from dj ...

  7. “全栈2019”Java第一百零七章:匿名内部类与构造方法注意事项

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第一百零六章:匿名内部类与抽象类接口注意事项

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第一百零五章:匿名内部类覆盖作用域成员详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  10. “全栈2019”Java第一百零四章:匿名内部类与外部成员互访详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. WebAssembly入门笔记[1]:与JavaScript的交互

    前一阵子利用Balazor开发了一个NuGet站点,对WebAssembly进行了初步的了解,觉得挺有意思.在接下来的一系列文章中,我们将通过实例演示的方式介绍WebAssembly的一些基本概念和编 ...

  2. 物联网浏览器(IoTBrowser)-顶尖OS2电子秤协议实现

    本教程基于  物联网浏览器(IoTBrowser)-Web串口自定义开发 ,详细的过程可以翻看之前的文章. 本篇以实现顶尖OS2系列电子秤协议对接,并集成到IoTBrowser平台.由于没有找到OS2 ...

  3. 01显示转换隐私转换 有8个值转为false 显示转换Number的注意点

    prompt()函数会弹出一个框,接受用户的输入.但是在实际的开发中.这样的操作是很少. 至少在我做开发的过程中没有使用过.我二没有看见人家在过开发的使用使用. console.log(Number( ...

  4. 【K哥爬虫普法】倒计时21天!事关爬虫er们能否平安回家过年!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  5. 【K哥爬虫普法】字节前高管,离职后入侵今日头条数据库,是阴谋、还是利诱?

    案情介绍 2016年至2017年间,张洪禹.宋某.侯明强作为被告单位上海晟品网络科技有限公司主管人员,在上海市共谋采用技术手段抓取北京字节跳动网络技术有限公司(办公地点位于本市海淀区北三环西路43号中 ...

  6. Unity的asm笔记

    使用asm的好处 减少修改C#后unity编译dll的时间,对于项目中的C#代码越多效果越明显,比如我们的一个3dmmo项目是纯C#开发,每次修改C#后编译时间就要26s以上 在Unity2018.2 ...

  7. SqlSugar删除数据

    1.根据实体删除 1.1 强类型实体 需要配置主键 ,根据主键删除需要给实体配置主键,参考文档实体配置 //单个实体 db.Deleteable<Student>(new Student( ...

  8. 如何在 Linux 上使用 NPOI

    由于 NPOI 使用 System.Drawing.Common,因此在 Linux 系统上必须安装 libgdiplus 和 libc6. Ubuntu 16.04+ apt-get install ...

  9. PaddleHub实战篇{词法分析模型LAC、情感分类ERNIE Tiny}训练、部署【三】

     相关文章: 基础知识介绍: [一]ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀.的博客-CSDN博客_ernie模型 百度飞桨: ...

  10. 使用C++实现Range序列生成器

    在C++编程中,经常需要迭代一系列数字或其他可迭代对象.通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读.如果你使用过Python语言那么一定对Range语句非常的数 ...