博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6基础0x009:模板字符串
阅读量:6427 次
发布时间:2019-06-23

本文共 1887 字,大约阅读时间需要 6 分钟。

0x000 概述

模板字符串出来以后,单引号、双引号哪个好的争论可以退出历史舞台的,模板字符串的`最好!

0x001 语法

  • 单行文本

    `string text`
  • 多行文本

    `string text line 1 string text line 2`
  • 内嵌表达式

    `string text ${expression} string text`
  • 标签语法(不太喜欢)

    tag `string text ${expression} string text`

0x002 单行文本

完全不 care 单引号和双引号,当然,转义`是不可避免的,有所得必有所失去嘛

let single=`string text, '' ""\`` // "string text, '' ""`"

0x003 多行文本,也不用关系换行的编码转化问题了,\n也可以走开了

let multip=`string text line 1 string text line 2` // "string text line 1 //  string text line 2"
所以我们可以这么写代码```let dom=`    我要换行    我还要换行````虽然好像没什么卵用

0x004 表达式

这是模板字符串最大的作用了,有好极大好处呢

  • 更强的阅读性和更不容易错的字符串拼接

    let name='jack',age=23let summary=`my name is ${name}, age is ${age}`console.log(summary) // "my name is jack, age is 23"

    对比一下之前的字符串拼接

    let name='jack',age=23let summary='my name is ' + name + ', age is ' + ageconsole.log(summary) // "my name is jack, age is 23"
  • 可以内嵌表达式,表达式也可以很复杂,但是不推荐

    let num1 = 1, num2 = 2`${num1} + ${num2} = ${num1 + num2}` // '1 + 2 = 3'
  • 模板字符串嵌套

    let inner=`${`${'1'}`}` // 1

0x005 标签语法

我不太喜欢这个特性

function myTag(strings, personExp, ageExp) {  var str0 = strings[0]; // "that "  var str1 = strings[1]; // " is a "  var str2 = strings[2]; // " "      var ageStr;  if (ageExp > 99){    ageStr = 'centenarian';  } else {    ageStr = 'youngster';  }  return str0 + personExp + str1 + ageStr;}var output = myTag`that ${ 'Mike' } is a ${ '22' }`;console.log(output);// that Mike is a youngster

0x006 原始字符串

标签函数的第一个参数strings.raw储存着原始字符串,未经转义

function tag(strings) {  console.log(strings.raw[0]);}tag`string text line 1 \n string text line 2`; // "string text line 1 \n string text line 2"

使用String.raw()也是一样的效果,\n是两个字符。

var str = String.raw`Hi\n${2+3}!`;// "Hi\n5!"str.length;// 6str.split('').join(',');// "H,i,\,n,5,!"

0x007 babel转义

  • 源码
let name="jack",age=23let summary=`my name is ${name}, age is ${age}`
  • 翻译后
var name = "jack",    age = 23;var summary = "my name is " + name + ", age is " + age;

转载地址:http://nbfga.baihongyu.com/

你可能感兴趣的文章
34、重分布配置实验之分发列表distribute-list
查看>>
命令模式-对象行为型
查看>>
VS2017配置、提高生产力、代码辨识度 (工欲善其事必先利其器)新手必备!
查看>>
[Phoenix] 七、如何使用自增ID
查看>>
路由基本配置(上)
查看>>
windows上传文件到linux乱码解决
查看>>
fpm打包zabbix-agent
查看>>
pythopn List(列表)
查看>>
学习笔记 十五: mariadb
查看>>
学习笔记 124: 预备知识总结
查看>>
windows server之AD(1)
查看>>
如何升级PowerShell
查看>>
oracle kill所有plsql developer进程
查看>>
python实现登录查询(可以模糊查询)
查看>>
LAMP架构(apache用户认证,域名重定向,apache访问日志)
查看>>
struts2.0的json操作
查看>>
SQL注入神器——sqlmap
查看>>
Unity导航 (寻路系统Nav Mesh Agent)
查看>>
SaltStack配置语法-YAML和Jinja
查看>>
运用免费OA让你有意想不到的效果
查看>>