判断是否包含

都区分大小写

includes()方法

返回布尔值,表示是否找到了参数字符串

let str = 'hebei baodingshi lianchiqu'
console.log(str.includes('o'));// true
console.log(str.includes('o', 7));// true
console.log(str.includes('o', 8));// false
// includes()方法是区别大小写
console.log(str.includes('O'));// false
startsWith()方法

返回布尔值,表示参数字符串是否在原字符串的头部

let str = 'hebei baodingshi lianchiqu'
console.log(str.startsWith('hebei'));// true
/*startswidth()方法不是表示指定字符串是以另一个字符串开始的*表示指定字符串的指定索引值开始是否以另一个字符串开始的*/
console.log(str.startsWith('baodingshi',6));// true
endsWith()方法

返回布尔值,表示参数字符串是否在原字符串的尾部

let str = 'hebei baodingshi lianchiqu'
console.log(str.endsWith("hebei", 5));// true

重复字符串

repeat()方法

用于将原字符串重复次,返回一个新字符串。

  • number为小数,向下取整的
let str = 'abc';
console.log(str.repeat(2.5));//abcabc
  • number为NaN,不报错
let str = 'abc';
console.log(str.repeat(NaN));// 没有任何输出
  • number为负数,报错
let str = 'abc';
console.log(str.repeat(-2));// Invalid count value
console.log(str.repeat(Infinity));
  • number为0,不报错
let str = 'abc';
console.log(str.repeat(0));// 没有任何输出
  • number为字符串,先转换成数字值
let str = 'abc';
console.log(str.repeat('3'));//abcabcabc
console.log(str.repeat(true));

模板字符串

模板字符串是什么

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量

多行模板字符串
  • ES5

    • 字符串如果需要输出多行的话,需要使用字符串的拼接实现。
  • ES6
    • 字符串如果需要输出多行的话,只需要使用模板字符串即可。
//定义一个普通字符串
let str3 = 'this is\nstring' ;
console.log(str3);
/*this isstring
*/
let str4 = 'this is'+'string'
console.log(str4);//this isstring
// 定义一个模版字符串 - 充当多行普通字符串来使用
let str5 = `this isstring`;
console.log(str5);
/*
this isstring
*/let name ='张无忌';
//定义一个普通字符升
let str6 = 'hello ' + name + '!';
console.log(str6);//hello 张无忌!
// 定义一个模版字符串
let str7 = `hello ${name} !`;
console.log(str7);//hello 张无忌 !
带表达式的模板字符串

在普通字符串中嵌入表达式,需要通字符串的过拼接操作来实现。

通过模板字符串,嵌入变量需要将变量名写在$之中。

带标签的模板字符串

模板字符串的功能可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。

let str = 'console';
// 普通字符串
console.log('this is ' +str+ '.');// this is console.
// 模版字符串
console.log(`this is ${str}.`);// this is console.
// 带标签的模板字符串 - 用于处理模版字符串的方法(输出到控制台)
console.log`this is ${str}.`;// [ 'this is ', '.' ] console

标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。

原始字符串

在标签函数的第一个参数中,存在一个特殊的属性raw,可以通过它来访问模板字符串的原始字符串,而不经过特殊字符的替换。

let str = 'function'
function fn(arg) {console.log(arg.raw[0]);// [ 'this is function' ]console.log(arg.raw)// [ 'this is function' ]
}
fn`this is function`
console.log(String .raw`this is ${str}.`);// this is function.

所谓的原始字符串是模版字符串被定义时的内容,而不是处理之后的内容

[ES6] 细化ES6之 -- 字符串的扩展相关推荐

  1. [ES6] 细化ES6之 -- 函数的扩展

    函数参数的默认值 函数参数指定状认值 ES6 之前,不能直接为函数的参数指定默认值,如果定义了形参,不传递实参时导致形参为undefined,只能采用变通的方法. //ES5 function fn( ...

  2. [ES6] 细化ES6之 -- 数组的扩展

    扩展运算符 扩展运算符 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列.允许一个表达式在原地展开 // 定义一个数组 var arr ...

  3. [ES6] 细化ES6之 -- 对象的扩展

    对象的属性 属性表示法 ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法 ES5 let name = "张无忌"; function sayMe() {cons ...

  4. [ES6] 细化ES6之 -- 迭代器与生成器

    Symbol Symbol是什么 ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值 Symbol 值通过Symbol函数生成 let symbol = Symbol(); consol ...

  5. [ES6] 细化ES6之 -- 变量的解构赋值

    变量的解构赋值 解构赋值是什么 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值 var/let [变量名称1,变量名称2,...] = 数组或对象 本质上,这种写法属于"模式 ...

  6. [ES6] 细化ES6之 -- Class关键字

    类的声明 类是什么 类作为对象的模板,只是一个语法糖 class 关键字是让对象原型的写法更加清晰.更像面向对象编程的语法而已. // ES5创建构造函数 function Hero() {this. ...

  7. [ES6] 细化ES6之 -- Promise对象

    Promise对象是什么 Promise对象是什么 ES6新增了Prormnise对象,该对象允许对延迟和异步操作流程进行控制.一个Promise对象就是一个代表了异步操作最终完成或者失败的对象. 开 ...

  8. [ES6] 细化ES6之 -- ECMA6是什么

    ECMA6是什么 JavaScript 语言的下一代标准 ES6 的目标,是使得 JavaScript 语言可以用来编写大型的复杂的应用程序,成为企业级开发语言. ECMAScript 和 JavaS ...

  9. [ES6] 细化ES6之 -- 键值对集合

    Set集合 Set集合是什么 Set对象是值的集合,可以按照插入的顺序迭代它的元素. Set集合中的元素只会出现一次,即 Set集合中的元素是唯一的,没有重复的值. Set本身是一个构造函数,用来生成 ...

最新文章

  1. 新框架ES-MAML:基于进化策略、简易的元学习方法
  2. java xml 拆分_java – 如何使用VTDGenHuge将大型xml拆分成小块?
  3. [SpringBoot]全局异常处理
  4. 理解 JavaScript 闭包
  5. struts.xml 属性介绍
  6. 对号入座:大学助教、讲师、副教授、教授图鉴
  7. 【POJ2774】Long Long Message,第一次的后缀数组
  8. AI队列长度检测:R-CNN用于使用Keras进行自定义对象检测
  9. 2748: [HAOI2012]音量调节
  10. 创建虚拟目录http://localhost:1780/失败,错误:无法访问iis元数据库。您没用足够的特权访问计算机上的IIS网站...
  11. hal库串口dma卡死_HAL库版DMA循环模式串口数据收发
  12. 计算机 继续教育培训心得体会,继续教育培训总结.doc
  13. webstorm汉化之后出现乱码现象
  14. jlink6.80a烧写序列号(serial number)问题记录
  15. 【金九银十】Java微服务面试题,看到你就是赚到
  16. 一个在线挑选编程字体的网站
  17. 使用aspose进行将word转换为图片格式
  18. 怎樣制作线段动画_20技巧教你如何简单制作动画
  19. Windows系统电脑常用快捷键
  20. 从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始

热门文章

  1. 屏蔽预训练模型的权重。 只训练最后一层的全连接的权重。_轻量化 | 如何让笨重的深度学习模型在移动设备上跑起来?看它!...
  2. cisco 通过tftp备份/恢复配置和3560交换机IOS升级
  3. 如何使用vSphere Client 将文件上传到EXSI服务器的方法步骤
  4. python pow和**_第005篇:Python中的数字
  5. tomcat 热部署、热加载 精析
  6. leetcode 203. Remove Linked List Elements(链表)
  7. SVD — 奇异值分解
  8. Linux Top使用说明
  9. svn update 时总是提示 Password for '(null)' GNOME keyring: 输入密码
  10. SBT, activator, play之間的糾葛