ES6中模板语法与字符串处理

ES6 提出了“模板语法”的概念。在 ES6 以前,拼接字符串是很麻烦的事情:

var name = 'css'   
var career = 'coder' 
var hobby = ['coding', 'writing']
var finalString = 'my name is ' + name + ', I work as a ' + career + ', I love ' + hobby[0] + ' and ' + hobby[1]

仅仅几个变量,写了这么多加号,还要时刻小心里面的空格和标点符号有没有跟错地方。但是有了模板字符串,拼接难度直线下降:

var name = 'css'   
var career = 'coder' 
var hobby = ['coding', 'writing']
var finalString = `my name is ${name}, I work as a ${career} I love ${hobby[0]} and ${hobby[1]}`

字符串不仅更容易拼了,也更易读了,代码整体的质量都变高了。这就是模板字符串的第一个优势——允许用${}的方式嵌入变量。但这还不是问题的关键,模板字符串的关键优势有两个:

  • 在模板字符串中,空格、缩进、换行都会被保留
  • 模板字符串完全支持“运算”式的表达式,可以在${}里完成一些计算

基于第一点,可以在模板字符串里无障碍地直接写 html 代码:

let list = `
	<ul>
		<li>列表项1</li>
		<li>列表项2</li>
	</ul>
`;
console.log(message); // 正确输出,不存在报错

基于第二点,可以把一些简单的计算和调用丢进 ${} 来做:

function add(a, b) {
  const finalString = `${a} + ${b} = ${a+b}`
  console.log(finalString)
}
add(1, 2) // 输出 '1 + 2 = 3'

除了模板语法外, ES6中还新增了一系列的字符串方法用于提升开发效率:

(1)存在性判定:在过去,当判断一个字符/字符串是否在某字符串中时,只能用 indexOf > -1 来做。现在 ES6 提供了三个方法:includes、startsWith、endsWith,它们都会返回一个布尔值来告诉你是否存在。

  • includes:判断字符串与子串的包含关系:
const son = 'haha' 
const father = 'xixi haha hehe'
father.includes(son) // true
  • startsWith:判断字符串是否以某个/某串字符开头:
const father = 'xixi haha hehe'
father.startsWith('haha') // false
father.startsWith('xixi') // true
  • endsWith:判断字符串是否以某个/某串字符结尾:
const father = 'xixi haha hehe'
father.endsWith('hehe') // true

(2)自动重复:可以使用 repeat 方法来使同一个字符串输出多次(被连续复制多次):

const sourceCode = 'repeat for 3 times;'
const repeated = sourceCode.repeat(3) 
console.log(repeated) // repeat for 3 times;repeat for 3 times;repeat for 3 times;

相关推荐

  1. ES6模板语法字符串处理

    2024-02-07 01:24:01       40 阅读
  2. ES6模板字符串的基本使用

    2024-02-07 01:24:01       36 阅读
  3. ES6 字符串的方法

    2024-02-07 01:24:01       17 阅读
  4. es6 ?? || 区别

    2024-02-07 01:24:01       45 阅读
  5. ES6字符串变化

    2024-02-07 01:24:01       38 阅读
  6. ES6模块CommonJs模块异同

    2024-02-07 01:24:01       14 阅读
  7. ES6的MapSet

    2024-02-07 01:24:01       13 阅读
  8. ES6字符串新增方法

    2024-02-07 01:24:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 01:24:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 01:24:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 01:24:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 01:24:01       18 阅读

热门阅读

  1. 反射的理解

    2024-02-07 01:24:01       30 阅读
  2. 【安卓中kotlin 泛型的基本用法】

    2024-02-07 01:24:01       33 阅读
  3. eslint+prettier统一管理前端代码规范-进阶篇

    2024-02-07 01:24:01       29 阅读
  4. PDF下载添加水印和访问密码

    2024-02-07 01:24:01       32 阅读
  5. 建造者模式(Builder)

    2024-02-07 01:24:01       29 阅读
  6. Linux内核与驱动面试经典“小”问题集锦(2)

    2024-02-07 01:24:01       31 阅读
  7. git 的基本概念

    2024-02-07 01:24:01       35 阅读
  8. ECMAScript日常总结--ES2018(ES9)

    2024-02-07 01:24:01       27 阅读
  9. EasyExcel的导入导出使用

    2024-02-07 01:24:01       32 阅读
  10. 鸿蒙 WiFi 扫描流程(2)

    2024-02-07 01:24:01       28 阅读
  11. 【关于实现远程启动电脑】

    2024-02-07 01:24:01       31 阅读