- 字符串的扩展
- 字符的Unicode表示法
- ES6使用大括号表示法表示字符
"\u{20BB7}" // "𠮷" "\u{41}\u{42}\u{43}" // "ABC" let hello = 123; hell\u{6F} // 123 '\u{1F680}' === '\uD83D\uDE80' // true
- JavaScript共有6种方法可以表示一个字符。个人感觉大括号表示法综合最好用。
'\z' === 'z' // true '\172' === 'z' // true '\x7A' === 'z' // true '\u007A' === 'z' // true '\u{7A}' === 'z' // true
- ES6使用大括号表示法表示字符
- at()
- ES5对字符串对象提供
charAt
方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF
的字符。'abc'.charAt(0) // "a" '𠮷'.charAt(0) // "\uD842"
- 目前,有一个提案,提出字符串实例的
at
方法,可以识别Unicode编号大于0xFFFF
的字符,返回正确的字符。'abc'.at(0) // "a" '𠮷'.at(0) // "𠮷"
- ES5对字符串对象提供
- includes(), startsWith(), endsWith()
- 传统上,JavaScript只有
indexOf
方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。 - includes():返回布尔值,表示是否找到了参数字符串。用法和indexOf方法类似
- startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
- 示例:
var s = 'Hello world!'; s.startsWith('Hello') // true s.endsWith('!') // true s.includes('o') // true var t = 'Hello world!'; t.includes('Hello', 6) // false t.startsWith('world', 6) // true t.endsWith('Hello', 5) // true
- 注意(searchString, position)
//startsWith和includes:从前向后position索引从0开始可以包括position处信息//endsWith:从前向后position索引从0开始不包括position处信息
- 传统上,JavaScript只有
- repeat()
repeat
方法返回一个新字符串,表示将原字符串重复n
次。'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello" 'na'.repeat(0) // ""
- 参数如果是小数,会被取整。
'na'.repeat(2.9) // "nana"
- 如果
repeat
的参数是负数或者Infinity
,会报错。'na'.repeat(Infinity) // RangeError 'na'.repeat(-1) // RangeError
- 但是,如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于
-0
,repeat
视同为0。'na'.repeat(-0.9) // ""
- 参数
NaN
等同于0。
- 字符的Unicode表示法
ES6字符串和数组方法使用
于 2024-03-10 21:01:18 首次发布