1、JavaScript只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。
- includes() 表示是否包含某字符串,返回布尔值 true false
var str = 'you are beautiful!'
str .includes('u')//true
str .includes('uuuu')//false
- startsWith()返回布尔值,表示参数字符串是否在源字符串的头部。
var str = 'you are beautiful!'
str .startsWith('you')//true
str .startsWith('ful!')//false
- endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
var str = 'you are beautiful!'
str .endsWith('you')//false
str .startsWith('ful!')//true
这三个方法都支持第二个参数,表示开始搜索的位置。
var s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
2、repeat()方法
返回一个新字符串,表示将字符串重复几次
'd'.repeat(3)//"ddd"
3.repeat(2)//报错
‘3’.repeat(2)//‘33’
//参数如果是小数,会被取整
'd'.repeat(3.2)//"ddd"
'd'.repeat(3.8)//"ddd"
//如果repeat的参数是负数或者Infinity,会报错
'd'.repeat(-3.8)//报错
'd'.repeat(-3.8)//报错
'd'.repeat(-0.9) // ""
'd'.repeat(NaN) // ""
//如果repeat的参数是字符串,则会先转换成数字。
'd'.repeat('d') // ""
'd'.repeat('3') // "ddd"
3、padStart(),padEnd()
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
'a'.padStart(3,'1')//"11a"
'a'.padEnd(3,'1')//"a11"
//padStart的常见用途是为数值补全指定位数。下面代码生成10位的数值字符串。
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"
//另一个用途是提示字符串格式。
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
模板字符串
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
var greeting = `\`Yo\` World!`;
${ }来表示变量
var hhh = '糟了,是快放学的感觉!!!'
var sss = `今天周五,${hhh}`
console.log(sss)//今天周五,糟了,是快放学的感觉!!!
如果模板字符串中的变量没有声明,将报错。
// 变量place没有声明
var msg = `Hello, ${place}`;// 报错