字符串扩展
// ₻7
console.log(`\u20BB7`)
// 𠮷
console.log(`\u{20bb7}`)
let s = '𠮷a'
// 2
console.log(s.length)
// 返回位置0和1的字符
console.log(s.charAt(0))
console.log(s.charAt(1))
// 55362 返回指定位置的字符的 Unicode 编码
console.log(s.charCodeAt(0))
// 57271 返回字符的后2个字节
console.log(s.charCodeAt(1))
// 97 a的编码
console.log(s.charCodeAt(2))
// 134071
console.log(s.codePointAt(0))
// 20bb7
console.log(s.codePointAt(0).toString(16))
转16进制
let s = '𠮷'
// ES5的 d842
console.log(s.charCodeAt(0).toString(16))
// ES6的20bb7
console.log(s.codePointAt(0).toString(16))
// ES5的方法 ஷ
console.log(String.fromCharCode('0x20bb7'))
// ES6的方法 𠮷
console.log(String.fromCodePoint('0x20bb7'))
let s = `\u{20bb7}abc`
for (let i = 0; i < s.length; i++) {
console.log('es5', s[i])
}
for (let item of s) {
console.log('es6', item)
}
let s = `四川省成都市`
// 是否包含某个字
console.log(s.includes('省'))
// 是否某个字自起始
console.log(s.startsWith('四'))
// 是否某个字结束
console.log(s.endsWith('市'))
// 重复次数
console.log(s.repeat(2))
字符串模板
let name = 'ronle'
let info = 'hello world'
// 字符串模板
let ret = `${info},${name}`
console.log(ret)
// 补白
// 01
console.log('1'.padStart(2, '0'))
// 10
console.log('1'.padEnd(2, '0'))
function f (s, v1, v2) {
// ["i am ", ",", "",]
console.log(s)
// ronle
console.log(v1)
// hello
console.log(v2)
return s + v1 + ' ' + v2
}
let user = {
name: 'ronle',
info: 'hello'
}
// i am ,,,ronle hello 防止xss攻击
console.log(f`i am ${user.name},${user.info}`)
// Hi\n3
console.log(String.raw`Hi\n${1 + 2}`)
// 换行输出
console.log(`Hi\n${1 + 2}`)