资讯专栏INFORMATION COLUMN

ES6字符串

cppprimer / 694人阅读

摘要:提供的方法,可在字符串比较之前正规化,规避这种错误。过去判断数组或字符串中包含某一元素的时候需要用到方法,现在数组或字符串都能使用方法来判断是否包含某一元素。下面代码生成位的数值字符串。另一个用途是提示字符串格式。

1. 字符串的遍历

ES6字符串增加了遍历器接口,for-of 语法,相比传统for(let i=0;.....)来循环字符串,for-of循环可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点

for (let cp of "foo") {
  console.log(cp)
}
2. normalize()

在欧洲很多国家的字符中有语调和符号或重音符号,Unicode提供了两种方法。一种是直接提供带重音符号的字符,比如Ǒ(u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比如O(u004F)和ˇ(u030C)合成Ǒ(u004Fu030C)。
这两种语法在在视觉和语义上都等价,过去javascript不能识别这种等价。

"u01D1"==="u004Fu030C" //false

"u01D1".length // 1
"u004Fu030C".length // 2

ES6提供的normalize()方法,可在字符串比较之前正规化,规避这种错误。

"u01D1".normalize() === "u004Fu030C".normalize()
// true
3. includes()

过去判断数组或字符串中包含某一元素的时候需要用到indexOf()方法, 现在数组或字符串都能使用includes()方法来判断是否包含某一元素。

const arr = ["apple", "banana", "orange"]
const str = "Sometimes I walk a little faster in the school hallway just to get next to you."
arr.includes("orange") //true
str.includes("walk") //true
4. startsWith(), endsWith()

判断字符串是否以指定子串开头/结尾

"You can say goodbye and you can say hello".startsWith("You") 
//true
"Welcome to LA".endsWith("LA")
//true
5. repeat()

str.repeat(n)返回一个字符串,重复str n次的结果, 如果n是小数,则会被floor取整,n如果为其他类型则会转为数字再执行,如果为Infinity或负数或NaN, 报错

"x".repeat(3) // "xxx"
"hello".repeat(2) // "hellohello"
"na".repeat(0) // "
6. padStart(),padEnd()

字符串没有达到要求的长度,可以在开始/结尾处填充到指定长度

let str = "abc"
str.padStart(5, ">")
//>>abc

"x".padEnd(5, "ab") // "xabab"

如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

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

如果省略第二个参数,则默认补全空格

"x".padStart(4) 
// "   x"

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"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107878.html

相关文章

  • ES6-前世今生(0)

    摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...

    LeviDing 评论0 收藏0
  • 10个最佳ES6特性

    摘要:,正式名称是,但是这个名称更加简洁。已经不再是最新的标准,但是它已经广泛用于编程实践中。而制定了模块功能。自从年双十一正式上线,累计处理了亿错误事件,得到了金山软件等众多知名用户的认可。 译者按: 人生苦短,我用ES6。 原文: Top 10 ES6 Features Every Busy JavaScript Developer Must Know 译者: Fundebug 为了保...

    codeKK 评论0 收藏0
  • [ ES6 ] 快速掌握常用 ES6 (一)

    摘要:常量变量先说说常量和变量的概念吧,常量是说那种进行一次赋值后不会更改的值,比如说游戏账户的,变量是说赋值后有更改的需求的,比如游戏名,游戏密码。常用实例交换变量的值提取数据解构赋值对提取对象中的数据,尤其有用。 本系列文章适合快速掌握 ES6 入门语法,想深入学习 ES6 的小伙伴可以看看阮一峰老师的《ECMAScript 6 入门》 学习 20% 的知识完成 80% 的工作 关于 ...

    ispring 评论0 收藏0
  • 你该知道的ES6那些事儿

    摘要:最近重构了一个项目,引入了部分用法,最大的感受是让这门语言变得更加严谨,更加方便。通过该方法获得位置后还得比较一次才能判断是否存在。再来看看的写法使用数组来初始化一个,构造器能确保不重复地使用这些值。下面提供链接,供有兴趣的朋友参考。 最近重构了一个SPA项目,引入了部分ES6用法,最大的感受是ES6让javascript这门语言变得更加严谨,更加方便。本篇将结合实战经验,对最常用的部...

    CoffeX 评论0 收藏0
  • ES6 旧瓶新酒

    摘要:本文是系列的第二篇,前一篇走马观花概要介绍了,这一篇标题之所以叫旧瓶新酒,是想介绍那些原来就被广泛使用的对象,例如,对这些对象扩展了一些很有用的新方法。用于监听取消监听数组的变化,指定回调函数。在中已被建议撤销。 本文是 ES6 系列的第二篇,前一篇《ES6 走马观花》概要介绍了ES6,这一篇标题之所以叫旧瓶新酒,是想介绍那些原来就被广泛使用的JS对象,例如String、Array,E...

    未东兴 评论0 收藏0
  • Javascript内置对象新增接口列表

    网上很少有提供不同版本接口对比的文章,所以自己总结一下。 Array Method Description Modify Version concat 连接多个数组,返回数组副本,参数可以为值或数组 否 ES3 join 把数组元素组合为字符串 否 ES3 pop 删除并返回最后一个元素 是 ES3 push 向数组末尾添加一个或多个值,返回数组长度 是 ES3 reve...

    xuhong 评论0 收藏0

发表评论

0条评论

cppprimer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<