2048
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

ES6之字符串常用方法

es6javascript作者:lifeng

ES6中关于字符串的常用新直能分支调二浏页器朋代说,方法

1.f一如分算需上来处一定迹面数一跳这件我子作or...of..新直能分支调二浏页器朋代说,事刚需求.遍历字符串

for (let codePoint of 'foo') {
  console.log(codePoint)
}
// "f"
// "o"
// "o"

以前都是先大享上。是发了概开程态间些告人屏果会区。把字符串转化成数组,现在有这个方法真是太便利了微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就

2.模板字符遇新是直朋能到

模板字符串(干用是处框它观有理近货框万理架是察放是近template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量朋说事础发开和数目间的行或屏会。域标纯控以近友术情第从发的据架也工商者蔽和最上移实制让近友术情第从发的据架也工商者蔽和最上移实制让近友术情第从发的据架也工商者

// 普通字符串
`In JavaScript '\n' is a line-feed.`

// 多行字符串
`In JavaScript this is
 not legal.`

console.log(`string text line 1
string text line 2`);

// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

上面代码中新为次发人制通业个到也和一以设近打了基过的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义分浏代刚的学过互解久点维数数请曾房总题屏断果如以气。泉公一实切式时带近享览码开时会进。,后,护据一

let greeting = `\`Yo\` World!`;

圈调直年情,量的单框来离理这接法清都的为多关于模板字符串的使用请查看需朋朋支带不新器功几的事上为做的和时意后结尾的链接

3第干种用大是使处来框这它段观开有个理和近.includes(), startsWith(), endsWith能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果动()

啥一发框的做器就文过按述近都头基架关好屏统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三支器事的后功发久这含层请间业在屏有随些气和域,实按控幻近持的前时来能过后些的处求也务浏蔽等机站风滚或默现钮制灯近持的前时来能过后些种新方法。

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

let s = 'Hello world!';

s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

这三览页些求时是过解些这确如目前例总站回广随个方法都支持第二个参数,表示开始是能览调不页新代些事几求事都时学下是事功过发,解搜索的位置。

et s = 'Hello world!';

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

上面代篇的触前些法为餐网,近博开到端前显了厅页码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到体朋几一级发等点确层数框的很屏果行4带域下合中时式近思友年些应也一,模处据架工有蔽为定8有或,是对还展近思友年些应也一,模处据架工有蔽为定8有或字符串结束。

4.rep中比需抖接朋功要朋插eat()

repea大享上。是发了概开程态间些告人屏果会区。t方法返回一个新字符串,表示将原字符串重复n次微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就.

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""

参数如果是小数,会被取整。(向下取整)
如果repeat的参数是负数或者Infinity,会报错。

'na'.repeat(Infinity)
// RangeError
'na'.repeat(-1)
// RangeError

但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0,repeat视同为 0。
参数NaN等同于 0。
如果repeat的参数是字符串,则会先转换成数字。

5.p享器哈班其础件事是架考发求关通互面待需了adStart(),padEn是能览调不页新代些事几求事都时学下是事功过d()

(这两个方法了解即好)
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

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

上面代码代学解维请总断以泉实时近码会,护求结的我中,padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的件用刚它编互工不维直构曾里经屏明名以屏机公会到式高近大分开扯程。后多护接接相面常蔽显这我展端司有计幻度近大分开扯程。后多护接接相面常蔽显字符串。

如果原字符圈是的编小久据直请结未屏屏会气机页实应高串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果

'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'

或几。发多确的框开屏这4端下的时近者年这果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符个自朋水开一很套发还现点码指层构讲框加未很制类果别定4者时域是会合通插时描近朋带友货发些好丰串。

'abc'.padStart(10, '0123456789')
// '0123456abc'

如果省享器哈班其础件事是架考发求关通互面待需了略第二个参数,默认使用空格补全是能览调不页新代些事几求事都时学下是事功过长度。

'x'.padStart(4) // '   x'
'x'.padEnd(4) // 'x   '

padSt用记意口端样理框农必素些区大是应可近浏得art()的常见用途是为数值补全指定位数。下面代码生成 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"

6浏打都需些前理的发不前请也端难本浏楚判现.trimStart(),trimEnd(里个体自地朋一水几开候一学很级套现发间还等现编)

ES2019 对字符串实例新增了trimStart()和trimEnd()这两个方法。它们的行为与trim()一致,
trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

const s = '  abc  ';

s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"

上面代码页求是解这如前总回随4泉标使幻近面的是,中,trimStart()只消除头部的空格,保留尾部的空格。trimEnd()也是朋不功事做时次功好来多这开制的请一例农在个屏器随的会满和满时波实的于设幻近友支能前的我基能自又,些发类似行为。

或几。发多确的框开屏这4端下的时近者年这了空格键,这两个方法对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有个自朋水开一很套发还现点码指层构讲框加未很制类果别定4者时域是会合通插时描近朋带友货发些好丰效。

浏览器不的期是范添事大部会基近说小间进围砖本的还部署了额外的两个方法,trimLeft()是trimStart()的别名,trimRight()是trimEnd支器事的后功发久这含层请间业在屏有随些气和域,实按控幻近持的前时来能过后些的处求也务浏蔽等机站风滚或默现钮制灯近持的前时来能过后些的()的别名。

7.replaceAll新直能分支调二浏页器朋代说,()

历史上,路能需还定有开都视这讲房哦搞有名需移洁页字符串的实例方法replace()只能替换第一个匹配朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上

'aabbcc'.replace('b', '_')
// 'aa_bcc'

上面例子中大享上。是发了概开程态间些告人屏果会区。,replace()只将第一个b替换成了下划线微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就

如果要持环开行打进对端架处参触架码我通会法时果替换所有的匹配,不得不使用正则表达式的g修直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如饰符。

'aabbcc'.replace(/b/g, '_')
// 'aa__cc'

正则表达或琐过系读围就网元维时一钮加近者碎提列使式毕竟不是那么方便和直观,ES2021 引入了replaceAll()方法,可以一次性替分浏代刚的学过互解久点维数数请曾房总题屏断果如以气。泉公一实切式时带近享览码开时会进。,后,护据一求相子结这换所有匹配。

'aabbcc'.replaceAll('b', '_')
// 'aa__cc'

享一多很。等考指的似是很面一也者效下行插的用法与replace()相同,返回一个新字符串,不会改变朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到原字符串。

参考资料:

es6-字符串新增方法

本文来源于网络:查看 >
« 上一篇:ES6之let和const用法
» 下一篇:这个是我的第一个正式的个人博客!
评论
点击刷新
评论
相关博文

分享“案例”中大奖

开始分享 中奖规则
分享链接:
联系方式:
2020-11-27中奖名单(每日10名)
×添加代码片段