string
都不影响原数据!!!
const str = 'adsAsddfAxca'
str.replace('a', '8')
// '8dsAsddfAxca'
str.replace('a', () => 9)
// '9dsAsddfAxca'
str.replace(/a/, () => 9)
// '9dsAsddfAxca'
str.replace(/a/g, () => 9)
// '9dsAsddfAxc9'
str.replace(/a/gi, () => 9)
// '9ds9sddf9xc9'
str.startsWith('ad')
// true
str.endsWith('ca')
// true
str.repeat(3)
// 'adsAsddfAxcaadsAsddfAxcaadsAsddfAxca'
str.match(/a/gi)
// (4) ['a', 'A', 'A', 'a']
str.padEnd(14, '0')
// 'adsAsddfAxca00'
str.padStart(15, '0')
// '000adsAsddfAxca'
str.slice(2,4)
// 'sA'
str.substr(2,4) // 和slice区别是第二个参数不是结束下标, 是需要截取的长度
// 'sAsd'
str.toLowerCase()
// 'adsasddfaxca'
str.toUpperCase()
// 'ADSASDDFAXCA'
str.length
// 12
str.at(3)
// 'A'
str[3]
// 'A'
str.charAt(3)
// 'A'
str.includes('Asd')
// true
str.indexOf('Asd')
// 3
str.indexOf('A')
// 3
str.lastIndexOf('A') // 从后面开始找, 下标还是从前面开始数
// 8
// -------------------------------------------------------
const str2 = ' sdafd sfds s '
str2.trim()
// 'sdafd sfds s'
str.concat(str2)
// 'adsAsddfAxca sdafd sfds s '
// -------------------------------------------------------
const str3 = 'sd-er-uiui-jiji-nknk'
str3.split('-')
// (5) ['sd', 'er', 'uiui', 'jiji', 'nknk']