以往我们做字符串拼接是这样的:
let name = "yang";
let age = "18";
let him = "我的名字是:"+ name + ", 年龄为:"+ age;
现在我们ES6可以这样:
let name = "yang";
let age = "18";
let him = `我的名字是:${name}, 年龄为:${age}`
使用:` 放需要拼接的字符串 ${放拼接字符串的值} `;
字符串新增的一些方法
以往我们要查找一个字符串中是否存在一个字符,一般使用indexOf()
let str = "my name is yang";
if(str.indexOf("yang") !== -1){
console.log(true);
}else{
console.log(false)
}
现在我们可以这样:
str.includes("要找的字符串");
str.includes("yang"); //返回一个布尔值,找到返回:true,没找到返回:false
检测一个字符串是否以指定字符开头方法:
str.startsWith("检测的字符串"); //返回一个布尔值,找到返回:true,没找到返回:false
检测一个字符串是否以指定字符结尾方法:
str.endsWith("检测的字符串"); //返回一个布尔值,找到返回:true,没找到返回:false
重复生成字符串:
str.repeat("次数"); // ES7
let str = "a";
str.repeat(3); // 值为:aaa
往字符串前后添加:
往字符串前面添加内容:
str.padStart(填充后字符串的长度, 需要填充的内容);
往字符串后面添加内容:
str.padEnd(填充后字符串的长度, 需要填充的内容);
let str = "a";
let addStr = "xxx";
str.padStart(str.length+addStr.length, addStr); //值为:xxxa
str.padEnd(str.length+addStr.length, addStr); //值为:axxx
遍历字符串:for of
let str = "yang";
for(let i of str2){
console.log(i); //依次输出:y a n g
}
除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。
let text = String.fromCodePoint(0x20BB7);
for (let i = 0; i < text.length; i++) {
console.log(text[i]);
}
// " "
// " "
for (let i of text) {
console.log(i);
}
// "?"
上面代码中,字符串text只有一个字符,但是for循环会认为它包含两个字符(都不可打印),而for...of循环会正确识别出这一个字符。
字符串扩展字符串模板以往我们做字符串拼接是这样的:let name = "yang";let age = "18";let him = "我的名字是:"+ name + ", 年龄为:"+ age;现在我们ES6可以这样:let name = "yang";let age = "18";let him = `我的名字是:${name}, 年龄为:${age}`使用:` 放需...