先看看JavaScript中两个字符串的效果,就很容易知道模板字符串是个啥东西,其实一点也不新鲜。高级编程中,例如java里面的string.format就是干这个事情,诸如此类。
1. 概念理解
A.老式做法
var ohello='good good day, day day good' var oworld='please look ' + '"' + ohello + '"' + ', cool style, please enjoy it' console.info(oworld)
B.新式做法
var hello='good good day, day day good' var world=`please look "${hello}", cool style, please enjoy it` console.info(world)
是不是新式做法简单了很多,这种表达方式是ES6提出的模板字符串方式。
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。变量的获取方式是${varName},使得字符串模板定义简单化。
2. 模板字符串中有没有变量不是刚需
var str1 = `hello world` console.log(str1)
字符串模板方便了将变量的值嵌入到模板字符串中。
3. 如果使用模版字符串输出多行字符串,所有的空格和缩进都会被保存在输出中!!
console.log(`No matter\` what you do, I trust you. 。。。。 呵呵`)
4. 在${}中的大括号里可以放入任意的JavaScript表达式,及引用对象属性(类似Spring SpEL表达式),还可以进行运算。
var x=100; var y=123; console.log(`x=${x++},y=${x+y}`);