05-标准库新增

nobility 发布于 2022-12-13 02-ES6 2474 次阅读


标准库新增

对象

Super 关键字

  • 指向该对象的原型
  • 只能在对象方法中使用

静态方法

方法名 描述
Object.Is (object, object) 判断两个变量的值是否严格相等,与严格相等运算符不同的是,NaNNaN是相等的;+0-0是不相等的
Object.Assign (target[,... Source]) source对象中可枚举的属性复制到target对象中,即对象的合并;同名属性会被覆盖掉,无法复制描述对象中的存取器;只有一个参数会将这个对象原封不动的返回,若不是对象会现转为对象在返回,若是nullundefined会报错;之后个参数若是nullundefined不会报错
Object.GetOwnPropertyDescriptors (obj) 获取obj的所有属性的描述对象,可以用此方法配合assign ()方法复制存取器
Object.Values (obj) 返回obj对象自身的所有属性值的数组(不包括不可枚举的属性)
Object.Entries (obj) 返回obj对象自身的所有元素以[属性名, 属性值]形式的二维数组(不包括不可枚举的属性)
Object.FromEntries (arr) 返回将元素以[属性名, 属性值]形式的二维数组转化成的对象

包装对象

String

静态方法
方法名 描述
String.FromCodePoint (... Unicode) 可以将超过0 xFFFF的码点字符识别转化为字符串
实例方法

查询方法

方法名 描述
String.Prototype.CodePointAt (index) 返回指定下标的字符Unicode编码,可以识别超过0 xFFFF的码点字符,若下标不合法返回NaN
String.Prototype.Includes (str) 判断该字符串中是否包含str字符串
String.Prototype.StartsWith (prefix) 判断该字符串是否以prefix为前缀
String.Prototype.EndsWith (suffix) 判断该字符串是否以suffix为后缀

转化方法

方法名 描述
String.Prototype.Repeat (count) 返回一个当前字符串重复count次拼接的字符串;小数会取整,小于负一的数或Infinity会报错,小于 0 大于-1 或NaN会视为 0
String.Prototype.PadStart (len, str) 返回一个使用str头部补全(一次不够则会重复补)到len长度的字符串
String.Prototype.PadEnd (len, str) 返回一个使用str尾部补全(一次不够则会重复补)到len长度的字符串
String.Prototype.TrimStart () 返回一个去除头部空白的字符串
String.Prototype.TrimEnd () 返回一个去除尾部空白的字符串

数值

  • 八进制使用0 o做前缀
静态方法

将全局有管数值型的函数移植到 Number 上

方法名 描述
Number.IsFinite (number) 判断是否是有限数,非数字会先转化成数值型
Number.IsNaN (number) 判断是否是NaN,非数值会先转化成数值型
Number.ParseInt (string) 将字符串转化成整型数值
Number.ParseFloat () 将字符串转化成浮点型数值

新增了Number.IsInteger ()方法、Number.IsSafeInteger ()方法和Number. EPSILON属性

方法名 描述
Number.IsInteger (number) 判断是否为整数,注意小数点后全零也是整数
Number.IsSafeInteger (number) 判断是否在能精确表示的数值范围中
Number. EPSILON 极小数,用来做浮点数运算误差范围

数组

静态方法

方法名 描述
Array.From (obj[, callback]) 将伪数组对象转化成正真的数组,会将空位转化为undefinedcallback类似与数组中的map ()函数处理对象的属性,但是不会处理length属性
Array.Of (... Element=[]) 将一组值转化成一个数组,弥补了Array ()构造函数的参数不统一

实例方法

转化方法

方法名 描述
Array.Prototype.CopyWithin (target, start=0, end=this. Length) 原数组的target位置开始,使用原数组中[start,end)[start, end)范围的元素进行替换
Array.Prototype.Fill (element, start=0, end=this. Length) 使用element填充数组元素,可以指定填充范围
Array.Prototype.Flat (layer=1) 将嵌套数组拉平一层,可以指定层数,若参数是Infinity则都会转化成一维数组
Array.Prototype.FlatMap (callback[, thisTar]) 将嵌套数组拉平一层并且只能拉平一层,cllback类似于数组的map ()函数处理数组元素,第二个参数绑定回调的this指向

转化方法

方法名 描述
Array.Prototype.Find (callback[, thisTar]) 找出第一个使该回调函数返回true的元素,第二个参数绑定回调的this指向
Array.Prototype.FindIndex (callback[, thisTar]) 找出第一个使该回调函数返回true的元素下标,第二个参数绑定回调的this指向
Array.Prototype.Include (element) 判断该数组中是否包含element元素,可以识别NaN

Math

静态方法

方法名 描述
Math.Trunc (number) 取整
Math.Cbrt (number) 立方根
Math.Hypot (... Number) 平方和的平方根

正则

新增修饰符

符号 描述
y 粘连,与全局搜索不同的是每次需要从上次匹配结束位置开始的第一个字符匹配正则,否则匹配不到返回 null,也就是说他们要连序匹配
u 可以识别超过0 xFFFF的码点字符
s dotAll 模式,.可以匹配任意字符就包括换行符等终止符号了

实例属性

属性名 描述
RegExp. Prototype. Sticky 判断是否设置了y修饰符
RegExp. Prototype. Unicode 判断是否设置了u修饰符
RegExp. Prototype. DotAll 判断是否设置了s修饰符
RegExp. Prototype. Flags 返回所有修饰符,包括新增的

命名的分组捕获

可以为正则的每一组匹配最前面使用?<name>方式起名

Let t = "1997-01-01".Match (/(\d{4})-(\d{2})-(\d{2})/);
Console.Log (t);
// [ '1997-01-01',
// '1997',
// '01',
// '01',
// index: 0,
// input: '1997-01-01',
// groups: undefined ]  //此时 groups 是 undefined
t = "1997-01-01".Match (/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/);
Console.Log (t);
// [ '1997-01-01',
//   '1997',
//   '01',
//   '01',
//   index: 0,
//   input: '1997-01-01',
//   groups: { year: '1997', month: '01', day: '01' } ]
// 此时可以根据 groups 中自己起的名字获取那一组匹配

先行和后行断言

使用匹配单词 (? 断言)的形式指定先行断言匹配,使用(?>断言) 匹配单词的形式指定后行断言,主要这里的括号不是分组匹配

//先行断言
Let str = "a 1_a 3";
Console.Log (str.Match (/a (?=1)/));   //匹配 a 后紧跟着是 1 的那个 a   //[ 'a', index: 0]
Console.Log (str.Match (/a (?! 1)/));   //匹配 a 后紧跟着不是 1 的那个 a //[ 'a', index: 3]
//后行断言
Let str = "1 a_3 a";
Console.Log (str.Match (/(?<=1) a/));   //匹配 a 前紧跟着是 1 的那个 a   //[ 'a', index: 1]
Console.Log (str.Match (/(?<! 1) a/));   //匹配 a 前紧跟着不是 1 的那个 a   //[ 'a', index: 4]
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2022-12-13