李才哥
字符串的扩展
原创
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
李才哥
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
字符串的扩展
字符串的扩展
原创
李才哥
关注
修改于 2021-02-23 14:31:44
428
0
修改于 2021-02-23 14:31:44
举报
文章被收录于专栏:
李才哥
李才哥
字符串的扩展
字符的 Unicode 表示法
JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点
ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符
codePointAt()
JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节
对于这种4个字节的字符,charAt方法无法读取整个字符,charCodeAt方法只能分别返回前两个字节和后两个字节的值
ES6 提供了codePointAt方法,能够正确处理 4 个字节储存的字符,返回一个字符的码点。
对于那些两个字节储存的常规字符,它的返回结果与charCodeAt方法相同
codePointAt方法返回的是码点的十进制值,如果想要十六进制的值,可以使用toString方法转换一下
String.fromCodePoint()
ES5 提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符
ES6 提供了String.fromCodePoint方法,可以识别大于0xFFFF的字符,弥补了String.fromCharCode方法的不足
如果String.fromCodePoint方法有多个参数,则它们会被合并成一个字符串返回
字符串的遍历器接口
ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历
这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点
at()
ES5 对字符串对象提供charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF的字符
有一个提案,提出字符串实例的at方法,可以识别 Unicode 编号大于0xFFFF的字符,返回正确的字符
有一个提案
normalize()
ES6 提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化
includes(), startsWith(), endsWith()
JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中
includes():返回布尔值,表示是否找到了参数字符串
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
repeat()
repeat方法返回一个新字符串,表示将原字符串重复n次
参数如果是小数,会被取整
如果repeat的参数是负数或者Infinity,会报错
如果参数是 0 到-1 之间的小数
padStart(),padEnd()
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串
如果省略第二个参数,默认使用空格补全长度
matchAll()
matchAll方法返回一个正则表达式在当前字符串的所有匹配
模板字符串
模板字符串(template string)是增强版的字符串,用反引号(`)标识
如果在模板字符串中需要使用反引号,则前面要用反斜杠转义
如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中
模板字符串中嵌入变量,需要将变量名写在${}之中
模板字符串之中还能调用函数
模板字符串甚至还能嵌套。
实例:模板编译
该模板使用<%...%>放置 JavaScript 代码,使用<%= ... %>输出 JavaScript 表达式
标签模板
“标签模板”的一个重要应用,就是过滤 HTML 字符串,防止用户输入恶意内容
String.raw()
String.raw方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串
模板字符串的限制
模板字符串默认会将字符串转义,导致无法嵌入其他语言
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
javascript
ecmascript
unicode
编程算法
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
javascript
ecmascript
unicode
编程算法
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
关注
文章
0
获赞
0
目录
字符的 Unicode 表示法
JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点
ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符
codePointAt()
JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节
对于这种4个字节的字符,charAt方法无法读取整个字符,charCodeAt方法只能分别返回前两个字节和后两个字节的值
ES6 提供了codePointAt方法,能够正确处理 4 个字节储存的字符,返回一个字符的码点。
对于那些两个字节储存的常规字符,它的返回结果与charCodeAt方法相同
codePointAt方法返回的是码点的十进制值,如果想要十六进制的值,可以使用toString方法转换一下
String.fromCodePoint()
ES5 提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符
ES6 提供了String.fromCodePoint方法,可以识别大于0xFFFF的字符,弥补了String.fromCharCode方法的不足
如果String.fromCodePoint方法有多个参数,则它们会被合并成一个字符串返回
字符串的遍历器接口
ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历
这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点
at()
ES5 对字符串对象提供charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF的字符
有一个提案,提出字符串实例的at方法,可以识别 Unicode 编号大于0xFFFF的字符,返回正确的字符
normalize()
ES6 提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化
includes(), startsWith(), endsWith()
JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中
includes():返回布尔值,表示是否找到了参数字符串
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
repeat()
repeat方法返回一个新字符串,表示将原字符串重复n次
参数如果是小数,会被取整
如果repeat的参数是负数或者Infinity,会报错
如果参数是 0 到-1 之间的小数
padStart(),padEnd()
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串
如果省略第二个参数,默认使用空格补全长度
matchAll()
matchAll方法返回一个正则表达式在当前字符串的所有匹配
模板字符串
模板字符串(template string)是增强版的字符串,用反引号(`)标识
如果在模板字符串中需要使用反引号,则前面要用反斜杠转义
如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中
模板字符串中嵌入变量,需要将变量名写在${}之中
模板字符串之中还能调用函数
模板字符串甚至还能嵌套。
实例:模板编译
该模板使用<%...%>放置 JavaScript 代码,使用<%= ... %>输出 JavaScript 表达式
标签模板
“标签模板”的一个重要应用,就是过滤 HTML 字符串,防止用户输入恶意内容
String.raw()
String.raw方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串
模板字符串的限制
模板字符串默认会将字符串转义,导致无法嵌入其他语言
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐