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}`)

 

posted @ 2019-09-08 12:15  ronle  阅读(174)  评论(0编辑  收藏  举报