字符串的扩展--1

// 传统JavaScript只有indexOf方法
// var str = "hello";
// console.log(str.indexOf("e"))//1
// console.log(str.indexOf("e",1))//1
// console.log(str.indexOf("e",2))//-1,没找到,返回-1

// ES6又添加三种新方法
// includes():返回布尔值,表示是否找到了参数字符串。
// var s = 'Hello world!';//针对从第n个位置直到字符串结束。
// console.log(s.startsWith('world', 6))// true
// console.log(s.startsWith('world', 5))// true
// startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
// s.startsWith('Hello') // true
// s.startsWith('world', 6) // true
// endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
// endsWith的行为与其他两个方法有所不同。它针对前n个字符
// var s = 'Hello world!';//针对从第n个位置直到字符串结束。
// console.log(s.endsWith('!')) // true
// console.log(s.endsWith('Hello', 5)) // true

// 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。
// 'na'.repeat(NaN) // ""

// 如果repeat的参数是字符串,则会先转换成数字。

// 'na'.repeat('na') // ""
// 'na'.repeat('3') // "nanana"

// ES7 无法编译会报错
// padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
// 'x'.padStart(5, 'ab') // 'ababx'
// 'x'.padStart(4, 'ab') // 'abax'

// 'x'.padEnd(5, 'ab') // 'xabab'
// 'x'.padEnd(4, 'ab') // 'xaba'

原文地址:https://www.cnblogs.com/mr-pz/p/5983258.html