今天开始和大家一起系统的学习ES6+,每天3分钟,用一把斗地主的时间,重学ES6+,今天介绍的是模版字符串和标签模版字符串
// ES6之前拼接字符串和其他标识符
const name = "yz"
const age = 24
const height = 175
console.log("my name is " + name + ", age is " + age + ", height is " + height)
// my name is yz, age is 24, height is 175
// ES6提供模板字符串 ``
const message = `my name is ${name}, age is ${age}, height is ${height}`
console.log(message)
// my name is yz, age is 24, height is 175
const info = `age double is ${age * 2}`
console.log(info)
// age double is 48
function doubleAge() {
return age * 2
}
const info2 = `double age is ${doubleAge()}`
console.log(info2)
// double age is 48
函数调用的一种特殊形式
function foo(m, n, x) {
console.log(m, n, x, '---------')
}
foo("Hello", "World")
// 另外调用函数的方式: 标签模块字符串
// foo``
// foo`Hello World`
const name = "why"
const age = 18
// ['Hello', 'Wo', 'rld']
foo`Hello${name}Wo${age}rld`
标签模板由标签函数和模板字符串两部分组成。
其中标签函数的名称大家可以根据项目规范随意命名,模板字符串往往是是需要处理的数据内容。
// 语法标准
tag(arrStrings, exp1, exp2, exp3, ...)
// 实际使用
foo`Hello${name}Wo${age}rld`
对照着来看
标签模板功能很强大,可能一开始并不会觉得厉害之处,平时工作中也不会用到,但是这些知识是有用的,在很多库中会用到它。
可以直接生成组件,动态生成样式
const Button = styled.button`
background: ${props => props.primary ? 'palevioletred' : 'white'};
color: ${props => props.primary ? 'white' : 'palevioletred'};
font-size: 1em;
margin: 1em;
padding: 0.25em 1em;
border: 2px solid palevioletred;
border-radius: 3px;
`;
i18n`Welcome to ${siteName}, you are visitor number ${visitorNumber}!`
// "欢迎访问xxx,您是第xxxx位访问者!"
最后,这是我第一次参加更文活动,茫茫人海中,如果有幸遇到你,读到我这篇文章,那真是太好了。我深知还有很多不足,希望大家能多提建议,还是想舔着脸皮,向屏幕前的大帅比们,大漂亮们,恳请一个小小的点赞,这会是对我莫大鼓励。也祝愿点赞的大帅比们,大漂亮们升职加薪走向人生巅峰!
阅读量:2018
点赞量:0
收藏量:0