模板字面量

模板字面量

ES6新增使用模板字面量定义字符串的能力,保留换行字符,可以跨行定义字符串

let str = 'hello\nworld';//这里的换行符也可以直接是换行
//例如(但是声明字符串的方式		[` 	`]	)
let str = `hello
world`;           //这里前面只能定格写,不然会计算前面的空格
console.log.log(str);  
//hello
//world
字符串插值

可以在一个连续的定义中插入一个或多个值,任何插入的变量也会在他们最近的作用域中取值

字符串插值通过

在  ${ }   中使用一个JavaScript表达式实现
以前通用的字符串插入方式是利用 + 连接符实现
例如 let s1 = "hello";
	let s2 = "world";
//连接两个字符:let s = s1 +" " + s2 + " " + " ! ";
//hello world !
利用模板字面量
s = `${s1} ${s2} ${"!"}` //这里的感叹号不需要转义
//hello world !
 ${ }大括号中可以添加任何JavaScript表达式,可以调用函数,也可以插入自己之前的值,外面必须是 ` ` 符号

模板字面量标签函数

可以通过标签函数自定义插值行为。标签函数的参数分别依次是原始字符串数组和对每个表达式求值的结果,函数返回值是对这个模板字面量求值得到的字符串。

let a = 6;
let b = 10;

function s(str, av, bv, sum) {
    console.log(str);//这里的第一个参数是指去掉strr中的${}后的字符串,所以这里是"" , "+" , "=" , ""
    console.log(av);//这里是传进来的第一个${}值,如这里是6
    console.log(bv);
    console.log(sum);//这里是传进去的参数的表达式的结果,如表达式是+,则执行结果就是av 和 bv相加的值 
    return "foobar";//返回的字符串
}
let strr = `${ a } + ${ b } = ${ a + b }`;
let fina = s `${ a } + ${ b } = ${ a + b }`;//语法就是标签函数跟原始值strr
console.log(strr);
console.log(fina);
原始字符串

使用模板字面量可以直接获取到原始的模板字面量内容(如换行符合和Unicode字符),而不是转义之后的字符

使用string.raw标签函数
//例如
//\u00A9     这是版权符号
//如果直接使用模板字面量
console.log(`\u00A9`);   //输出©
//使用string.raw标签函数
console.log(string.raw`\u00A9`);     //输出  \u00A9
//还会忽略换行符
console.log(hello/world);     //输出hello\nworld
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

summer·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值