字符串的扩展与新增方法
1. 模板字符串
模板字符串解决了之前的字符串拼接
ESC下那个键:反引号(`)包裹=>替换引号
${变量名/表达式/函数}=>替换引引加加导致的代码冗余
//ES5(引引加加)
$('#result').append(
'There are <b>' + basket.count + '</b> ' +
'items in your basket, ' +
'<em>' + basket.onSale +
'</em> are on sale!'
);
//ES6中模板字符串
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
如果在模板字符串中需要使用反引号,则前面要用反斜杠转义
let greeting = `\`Yo\` World!`;
2.新增方法
1. includes(), startsWith(), endsWith()
判断一个字符串是否包含另一个字符串的方法
- includes():返回布尔值,标识是否找到了参数字符串(用布尔值替换正负1)
- startsWith:返回布尔值,标识参数字符串是否在原字符串的头部
- endtWith:返回布尔值,标识参数字符串是否在原字符串的尾部
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
2. 实例方法:repeat()
repeat
方法返回一个新字符串,表示将原字符串重复n
次如果是小数值会被取整
如果
repeat
的参数是负数或者Infinity
,会报错。如果参数是字符串首先先转为数值
'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
'na'.repeat(2.9) // "nana"
'na'.repeat(Infinity)
// RangeError
'na'.repeat(-1)
// RangeError
'na'.repeat('na') // ""
'na'.repeat('3') // "nanana"
几个参数视为0的情况:
- 参数:-1到0之间
- 参数NaN
'na'.repeat(-0.9) // ""
'na'.repeat(NaN) // ""
3.实例方法:trimStart(),trimEnd()
类似于trim():消除字符串两边空格,这里出现了单边消除
const s = ' abc ';
s.trim() // "abc"
s.trimStart() // "abc "
s.trimEnd() // " abc"
4.实例方法:replaceAll()
替换所有指定字符:返回一个新字符串,不会改变原字符串
'aabbcc'.replaceAll('b', '_')
// 'aa__cc'