ES6 notes(part2)

扩展

字符串的扩展

  1. 字符的 Unicode 表示法
    将码点放入大括号:"\u{41}\u{42}\u{43}"
  2. 字符串的遍历器接口
    ES6 为字符串添加了遍历器接口,使得字符串可以被for…of循环遍历。
  3. JavaScript 规定有5个字符,不能在字符串里面直接使用,只能使用转义形式
U+005C:反斜杠(reverse solidus)
U+000D:回车(carriage return)
U+2028:行分隔符(line separator)
U+2029:段分隔符(paragraph separator)
U+000A:换行符(line feed)
  1. JSON.stringify() 的改造
    如果遇到0xD800到0xDFFF之间的单个码点,或者不存在的配对形式,它会返回转义字符串,留给应用自己决定下一步的处理。
  2. 模板字符串
    模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
  3. 标签模板
    它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。

字符串的新增方法

  1. String.fromCodePoint()
    从 Unicode 码点返回对应字符,并且可以识别大于0xFFFF的字符。
  2. String.raw()
    返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。
  3. 实例方法:codePointAt()
    能够正确处理 4 个字节储存的字符,返回一个字符的码点。
  4. 实例方法:normalize()
    用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
  5. 实例方法:includes(), startsWith(), endsWith()
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
  1. 实例方法:repeat()
    repeat方法返回一个新字符串,表示将原字符串重复n次。
  2. 实例方法:padStart(),padEnd()
    如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
  3. 实例方法:trimStart(),trimEnd()
    trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。
  4. 实例方法:matchAll()
    matchAll()方法返回一个正则表达式在当前字符串的所有匹配
  5. 实例方法:replaceAll()
    可以一次性替换所有匹配。它的用法与replace()相同,返回一个新字符串,不会改变原字符串。

正则的扩展

  1. RegExp构造函数
    如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。

  2. 字符串的正则方法

String.prototype.match 调用 RegExp.prototype[Symbol.match]
String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
String.prototype.search 调用 RegExp.prototype[Symbol.search]
String.prototype.split 调用 RegExp.prototype[Symbol.split]
  1. u 修饰符
    点字符:点(.)字符在正则表达式中,含义是除了换行符以外的任意单个字符。对于码点大于0xFFFF的 Unicode 字符,点字符不能识别,必须加上u修饰符。
    Unicode 字符表示法:ES6 新增了使用大括号表示 Unicode 字符,这种表示法在正则表达式中必须加上u修饰符,才能识别当中的大括号,否则会被解读为量词。
    量词:使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的 Unicode 字符。
    预定义模式:u修饰符也影响到预定义模式,能否正确识别码点大于0xFFFF的 Unicode 字符。
    i 修饰符:有些 Unicode 字符的编码不同,但是字型很相近,比如,\u004B与\u212A都是大写的K。
    转义:没有u修饰符的情况下,正则中没有定义的转义(如逗号的转义,)无效,而在u模式会报错。
  2. RegExp.prototype.unicode 属性
    正则实例对象新增unicode属性,表示是否设置了u修饰符。
  3. y 修饰符
    y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始。
  4. RegExp.prototype.sticky 属性
    与y修饰符相匹配,ES6 的正则实例对象多了sticky属性,表示是否设置了y修饰符。
  5. RegExp.prototype.flags 属性
    ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符。
  6. s 修饰符:dotAll 模式
    ES2018 引入s修饰符,使得.可以匹配任意单个字符。/foo.bar/s.test('foo\nbar') // true
    这被称为dotAll模式,即点(dot)代表一切字符。所以,正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式。
  7. 后行断言
    x只有在y后面才匹配,必须写成/(?<=y)x/
  8. Unicode 属性类
    引入了一种新的类的写法\p{…}和\P{…},允许正则表达式匹配符合 Unicode 某种属性的所有字符。
  9. 具名组匹配
    引入了具名组匹配(Named Capture Groups),允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。
  10. 正则匹配索引
`const text = 'zabbcdef';
const re = /ab/;
const result = re.exec(text);

result.index // 1
result.indices // [ [1, 3] ]`

exec()方法的返回结果result,它的index属性是整个匹配结果(ab)的开始位置,而它的indices属性是一个数组,成员是每个匹配的开始位置和结束位置的数组。由于该例子的正则表达式没有组匹配,所以indices数组只有一个成员,表示整个匹配的开始位置是1,结束位置是3。
13. String.prototype.matchAll()
ES2020 增加了String.prototype.matchAll()方法,可以一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组。

数值的扩展

  1. 二进制和八进制表示法
    ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
  2. Number.isFinite(), Number.isNaN()
    Number.isFinite()用来检查一个数值是否为有限的(finite),Number.isNaN()用来检查一个值是否为NaN。
  3. Number.parseInt(), Number.parseFloat()
    ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
  4. Number.isInteger()
    Number.isInteger()用来判断一个数值是否为整数。
  5. Number.EPSILON
    ES6 在Number对象上面,新增一个极小的常量Number.EPSILON。根据规格,它表示 1 与大于 1 的最小浮点数之间的差。
  6. 安全整数和 Number.isSafeInteger()
    JavaScript 能够准确表示的整数范围在-253到253之间(不含两个端点),超过这个范围,无法精确表示这个值。
  7. Math 对象的扩展
    Math.trunc():用于去除一个数的小数部分,返回整数部分。
    Math.sign() :Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
    Math.cbrt():Math.cbrt()方法用于计算一个数的立方根。
    Math.clz32() :Math.clz32()方法将参数转为 32 位无符号整数的形式,然后返回这个 32 位值里面有多少个前导 0。
    Math.imul() :Math.imul方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。
    Math.fround() :Math.fround方法返回一个数的32位单精度浮点数形式。
    Math.hypot():Math.hypot方法返回所有参数的平方和的平方根。
  8. 指数运算符
    ES2016 新增了一个指数运算符(**)。
  9. BigInt 数据类型
    BigInt 只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值