《ES6标准入门》:字符串扩展
来源:互联网 发布:淘宝卖家注册 编辑:程序博客网 时间:2024/06/05 17:51
字符串扩展
目录
- 字符串扩展
- 目录
- 关于Unicode的字符串
- 字符串对象方法
- 1.charAt() 和 at()
- 2.indexOf 和 includes(),startsWith(),endsWith()
- 3.repeat()
- 4.padStart(),padEnd()
关于Unicode的字符串
感觉暂时用不到,手动忽略。
字符串对象方法
1.charAt() 和 at()
两者都是返回字符串给定位置的字符
charAt():ES5语法,不支持Unicode编号大于0xffff的字符;
at:ES7语法,支持Unicode编号大于0xffff的字符。
'abc'.charAt(0); // 'a''abc'.at(0); // 'a'
2.indexOf 和 includes(),startsWith(),endsWith()
传统JS语法:
indexOf():传统JS语法,返回指定字符串在另一字符串的位置,可以确定一个字符串是否包含在另一个字符串中;
ES语法:
includes():返回布尔值,表示是否找到了参数字符串;
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部;
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
var s = 'Hello world!';s.startsWith('Hello') // trues.endsWith('!') // trues.includes('o') // true
这三个方法都支持第二个参数,表示开始搜索的位置。
var s = 'Hello world!';s.startsWith('world', 6) // trues.endsWith('Hello', 5) // trues.includes('Hello', 6) // false
上面代码表示,使用第二个参数n
时,endsWith
的行为与其他两个方法有所不同。它针对前n
个字符,而其他两个方法针对从第n
个位置直到字符串结束。
3.repeat()
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"
4.padStart(),padEnd()
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
一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
'xxx'.padStart(2, 'ab') // 'xxx''xxx'.padEnd(2, 'ab') // 'xxx'
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
'abc'.padStart(10, '0123456789')// '0123456abc'
如果省略第二个参数,默认使用空格补全长度。
'x'.padStart(4) // ' x''x'.padEnd(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"
- 《ES6标准入门》:字符串扩展
- 《ES6标准入门》:数组的扩展
- 《ES6标准入门》:函数的扩展
- 《ES6 标准入门》读书笔记
- 【ES6】字符串的扩展
- ES6-字符串扩展
- 03、ES6 字符串扩展
- 【es6】字符串的扩展
- ES6字符串扩展
- ES6字符串扩展
- ES6字符串扩展
- ES6--字符串的扩展
- es6语法-字符串扩展
- ES6 字符串扩展
- ES6-字符串扩展-Unicode
- ES6-字符串扩展-repeat()
- es6字符串的扩展
- es6入门(二):解构赋值和字符串的扩展
- SSM(7)信息单&多删除
- Docker Compose
- Linux —— apt-get命令及端口查看命令
- linux 安装 分区方式比较
- Python-import和import *的区别
- 《ES6标准入门》:字符串扩展
- TextView用法总结
- Python 之禅
- 网页的!DOCTYPE详解
- VMware的快照和克隆总结
- git bash pull push操作多次输入密码
- 17.12.03,web学习第十七天,还有一年,努力吧青年JSP
- ffmpeg+nginx流媒体服务器搭建
- 校oj193——连续出现的字符