1 字符串操作
1.1 charAt对应位置上的字符
1.1.1 字符串通过[index]获取
1.2 字符编码相关
1.2.1 charCodeAt对应位置上的编码
1 ’a‘-97
2 'A'-65
3 '0'-48
1.2.2 String.fromCharCode(code)编码转字符
1.3 字符串位置
1.3.1 indexOf
1.3.2 lastIndexOf
1.4 截取字符串
1.4.1 substring(开始位置,[结束位置])
1.4.2 substr(开始位置,[字符数量])
1.4.3 slice(开始位置,[结束位置])
1 负数位置⭐⭐⭐
"abc".slice(-1) // "c"
"abc".slice(-2) // "bc"
2 玩法:零补齐两位指数⭐⭐⭐
es6中提供了padStart方法
let hours = 19, minutes = 8, seconds = 3;
// ("0"+minutes).slice(-2) 主要是转化为两位数,8->08
let result = `${("0" + hours).slice(-2)}::${("0" + minutes).slice(-2)}::${("0" + seconds).slice(-2)}`;
// 19::08::03
console.log(result)
1.5 split 分割为数组s
1.5.1 玩法:逆序字符串
"abc".split("").reverse().join("") // "cba"
1.6 replaceAll
let str = "tmd,外卖还没到,真tmd!"
// ***,外卖还没到,真***!
let result = str.replaceAll("tmd", "***");
1.6.1 玩法:实现上述效果不用replace
let str = "tmd,外卖还没到,真tmd!"
//["", ",外卖还没到,真", "!"]
let result = str.split('tmd').join("***");
1.7 startsWith
1.8 endsWith
1.9 includes
1.9.1 返回boolean
1.10 padStart(位数,填充的字符)
let hours = 7;
hours.toString().padStart(2,'0') // "07"
1.10.1 padEnd
1.11 repeat重复字符串
let str = "hi".repeat(3);
2 模板字符串
2.1 底层原理是通过正则匹配字符串
let name = "Aeroxian, school = "CAU";
// 模拟模板字符串
let str = "My name is ${name},at ${school}!";
// 匹配${任意字符}, 通过()单独拿出括号的内容
let result = str.replace(/\$\{([^\}]*)\}/g, function () {
console.log(arguments)
return eval(arguments[1])
})
// My name is Aeroxian,at CAU
console.log(result)
/** arguments
[Arguments] {
'0': '${name}',
'1': 'name',
'2': 11,
'3': 'My name is ${name},at ${school}'
}
[Arguments] {
'0': '${school}',
'1': 'school',
'2': 22,
'3': 'My name is ${name},at ${school}'
}
*/
2.2 玩法:快速拼接成有序列表
let names = ["Aeroxian", "hzz"];
let lis = names.map(item => `<li>${item}</li>`);
let result = `
<ul>
${lis.join("")}
</ul>
`;
/**
<ul>
<li>Aeroxian</li><li>hzz</li>
</ul>
*/
2.3 玩法:web中content-type
let type = mime.getType(filename);
response.writeHead(200,{
"content-type":`${type};charset=utf-8`
})
2.4 模板标签
- 提供了可以对模板字符操作的空间
function tag(str) {
console.log(str)
console.log(arguments)
}
let name = "Aeroxian", age = 25;
let result = tag`My name is ${name},and ${age} years old`;
/** str
0: "My name is "
1: ",and "
2: " years old"
*/
/** arguments
0: (3) ["My name is ", ",and ", " years old", raw: Array(3)]
1: "Aeroxian"
2: 25
*/
