解决字符串拼接问题
1. 字符串里可以嵌套变量:`${name}今年${age}岁了`
//es5
let name='aa',age=18;
let desc=name+'今年'+age+'岁了'
//es6
let name='aa',age=18;
let desc=`${name}今年${age}岁了`
//编译为es5
var name = 'aa',
age = 18;
var desc = "".concat(name, "\u4ECA\u5E74").concat(age, "\u5C81\u4E86");
复制代码
2. 模板字符串可以换行
let users=[
{
name:'aaa',
id:1
},
{
name:'bbb',
id:2
}
]
//map映射:把老数组中的每一个元素映射为新数组的每一项
let str=users.map((item,index)=>{
return `<li>${item.id}:${item.name}</li>`
}).join('')
let ul=(
`
<ul>
${str}
</ul>
`
)
console.log(ul);
/*
结果
<ul>
<li>1:aaa</li><li>2:bbb</li>
</ul>
* */
复制代码
3. 带标签的模板字符串
带标签的模板字符串,就像一个函数调用,可以有很多参数
参数1:文本的数组(所有被${}隔开的文本的集合)
以后的参数:是所有${}中的变量向后依次排开
文本集合永远比 变量集合的length多一个
function desc(strs,name,age){
console.log(strs);//文本的数组(所有被${}隔开的文本的集合)
console.log(name);
console.log(age);
}
let name='aa',age=18;
let str=desc`${name}今年${age}岁了`
console.log(str);
/*
[ '', '今年', '岁了' ]
aa
18
undefined
*/
复制代码
使用剩余运算符更直观
let name='aa',age=18;
let str=desc2`${name}今年${age}岁了`;
function desc2(strs,...arr){
console.log(strs);
console.log(arr);
}
// [ '', '今年', '岁了' ] 所有被${}隔开的文本的集合
// [ 'aa', 18 ] 所有${}中的变量集合
//strs 永远比arr 的length多一个
复制代码
es6 新加字符串方法:startsWith、endsWith、includes、repeat、
str.startsWith(‘xx’),判断str是不是以’xx’开头
let str='lixiang';
console.log(str.startsWith('l')); //true
复制代码
str.endsWith(‘xx’),判断str是不是以’xx’结束
let str='lixiang';
console.log(str.endsWith('li')); //false
复制代码
str.includes(‘xx’),判断str是不是 包含’xx’
let str='liyapei';
console.log(str.includes('li')); //true
复制代码
str.repeat(Number),将str重复Number拼接次
let str='lixiang';
console.log(str.repeat(3)); //lixianglixianglixiang
复制代码
str.padStart(targetLength , padString),在原字符串开头填充
targetLength目标长度:当str的长度小于targetLength
在原字符串开头填充
padString来补齐;当str的长度大于等于targetLength时返回原字符串padString:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断;不传padString,默认
' '
let str='liyapei';
console.log(str.padStart(5,'ojbk')); //liyapei
let str='liyapei';
console.log(str.padStart(10,'ojbk')); //ojbliyapei
let str='liyapei';
console.log(`(${str.padStart(10)})`); //( liyapei)
复制代码
str.padEnd(targetLength , padString),在原字符串末尾填充
targetLength目标长度:当str的长度小于targetLength
在原字符串末尾填充
padString来补齐;当str的长度大于等于targetLength时返回原字符串padString:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断;不传padString,默认
' '
let str='liyapei';
console.log(str.padEnd(5,'ojbk')); //liyapei
let str='liyapei';
console.log(str.padEnd(10,'ojbk')); //liyapeiojb
let str='liyapei';
console.log(`(${str.padEnd(10)})`); //(liyapei )
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END