模板字符串和标签函数

初识模板字符串

  在es5中定义字符串要通过’ '或者" "来表示字符串,而在es6之后新增了模板字符串的方式来表示字符串,通过反引号来标识。

const es5 = 'i am string'	
const es6 = `i also string` 

  传统的方式里面如果要换行,需要通过\n来表示,而模板字符串可以支持换行。同时还支持通过插值表达式的方式去定义变量。

const name = 'tom'
const = `hey,${name}`  // hey,tom

带标签的模板字符串

  在定义字符串之前我们可以添加标签,例1中的代码中的conslo.log就是标签。
例一

	//通过这种方式会打印一个数组[`hello world`]
	const str = console.log`hello world`
	

  那么为什么打印的是数组?而数组又是如何存放模板字符串的内容?下面例二中我们将对这个机制进行研究。
例二

	const name  = 'tom'
	const gender = true
	//使用标签函数前必须先定义这个标签函数
	function myTagFunc(strings,name,gender){
		console.log(strings)//['hey','is a','.']
		console.log(name)//tom
		console.log(gender)//true
		return `123`
	}
	const result = myTagFunc`hey,${name} is a ${gender}.`
	//这个时候result就是接收对模板字符串进行标签函数处理的返回值。
	console.log(result)//123

  因为在模板字符串中可能会有嵌入的表达式,所以我们这里的数组是按照表达式分割过后静态的内容,除了这个数组以外,这个标签函数还可以接收到表达式内部的值 。
总而言之,标签函数就是对模板字符串进行加工返回结果

加餐 字符串的扩展方法

  • includes()
  • startsWith()
  • endsWith()
//假设这是一个错误消息
const message = `Error: foo is not defined`
console.log(message.startsWith('Error'))//true
console.log(message.endsWith('.'))//true
console.log(message.includes('foo'))//true

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值