• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > ES6之字符串的扩展

ES6之字符串的扩展

作者:yangchunshang 字体:[增加 减小] 来源:互联网 时间:2017-12-08

yangchunshang通过本文主要向大家介绍了ES6之字符串的扩展等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

ES6加强了对Unicode的支持,并且扩展了字符串对象。

1、字符的Unicode表示法

JavaScript 允许采用 \uxxxx形式表示一个字符,其中“XXXX”表示字符的码点。但是这种表示法只限于\u0000 --\uFFFF之间的字符。超出这个范围的字符,必须用两个双子节的形式表达。如果直接在\u后面跟上超过0xFFFF的数值,JavaScript会理解成\u 20BB+7.由于\u20bb是一个不可打印字符,所以只会显示一个空格,后面跟着一个7.

ES6对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。

如:“\uDB42\uDFB7”       //”吉“

         "\u{20BB7}"     //  "吉"

      ‘\u{1F680}’ ==='\uD83D\uDE80'        //true

磁粒子表明,大括号表示法与四字节的UTF-16编码是等价的。

2、codePonitAt()

      javaScript内部,字符以UTF-16的格式储存,每个字符固定为2个字节。对于那些需要4个字节储存的字符,JavaScript会认为她们是两个字符。

ES6提供了codePointAt方法,能够正确处理4个字节储存的字符,返回一个字符的码点。

     codePointAt方法的参数,是字符在字符串中的位置(从0开始)。

     总之,codePontAt方法会正确返回32位的UTF-16字符的码点。对于哪些两个字节存储的常规字符,它的返回结果与charCodeAt方法相同。

codePontAt方法返回的是码点的十进制值。如果想要十六进制的值,可以使用toString方法转换一下。

  事实上,codePintAt方法是测试一个字符由两个字节还是四个字节组成的最简单的方法。32Bit

eg:

   function is32Bit(c){

      return c.codePointAt(0) > 0xFFFF;

}

 is32Bit("a")  //false

 

3、String.fromCodePoint()
 ES5 提供String.fromCharCode方法,用于从码点返回对应的字符。

ES6提供了String.fromCodePoint方法,可以识别0xFFFF的字符,弥补了String.fromCharCode方法的不足。在作用上,正好与codePointAt方法相反。

 4、字符串的遍历器接口

ES6为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。

eg:

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

5、at()方法。

ES5对字符串对象提供charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF的字符。

ES6提出字符串实例的at方法,可以识别Unicode编号大于0xFFFF的字符,返回正确的字符。

6、normalize()

ES6提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为Unicode正规化。

    

normalize方法可以接受一个参数来指定normalize的方式,参数的四个可选值如下。

  • NFC,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
  • NFD,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。
  • NFKC,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
  • NFKD,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
eg:'abc'.padStart(10, '0123456789')
// '0123456abc'
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
    'xxx'.padEnd(2, 'ab') // 'xxx'
    'x'.padEnd(4) // 'x   '
          '12'.padStart(10, '0') // "0000000012" eg:
         $('#result').append(`
        There are <b>${basket.count}</b> items
         in your basket, <em>${basket.onSale}</em>
         are on sale!
         `);

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11jquery事件与绑定事件
  • 2017-05-11BootStrap 图片样式、辅助类样式和CSS组件的实例详解
  • 2017-05-11jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
  • 2017-05-11基于React实现表单数据的添加和删除详解
  • 2017-05-11less简单入门(CSS 预处理语言)
  • 2017-05-11javascript实现复选框全选或反选
  • 2017-05-11微信小程序 实战程序简易新闻的制作
  • 2017-05-11fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
  • 2017-05-11JavaScript基于DOM操作实现简单的数学运算功能示例
  • 2017-05-11jQuery基本选择器和层次选择器学习使用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Javascript中字符串相关常用的使用方法总结
    • javascript图片预览和上传(兼容IE)
    • 常用的几个JQuery代码片段
    • JavaScript中数组Array.sort()排序方法详解
    • jquery仿ps颜色拾取功能
    • angular+bootstrap的双向数据绑定实例
    • Java中int与integer的区别(基本数据类型与引用数据类型)
    • Node.js制作简单聊天室
    • JavaScript中日常收集常见的10种错误(推荐)
    • javascript防篡改对象实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有