es6基础0x009:模板字符串

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了es6基础0x009:模板字符串脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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=23
    let summary=`my name is ${name}, age is ${age}`
    console.LOG(summary) // "my name is jack, age is 23"

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

    let name='jack',age=23
    let summary='my name is ' + name + ', age is ' + age
    console.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`Hin${2+3}!`;
// "Hin5!"

str.length;
// 6

str.split('').join(',');
// "H,i,,n,5,!"

0x007 babel转义

let name="jack",age=23
let summary=`my name is ${name}, age is ${age}`

var name = "jack",
    age = 23;
var summary = "my name is " + name + ", age is " + age;

脚本宝典总结

以上是脚本宝典为你收集整理的es6基础0x009:模板字符串全部内容,希望文章能够帮你解决es6基础0x009:模板字符串所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。