ES6(三)字符串扩展
字符串扩展 // ₻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}`)