es6_基础_02

一、对象新增的方法

1.Object.is() : 比较两个值是否相等
相较于ES5中运算符有缺陷,如:
相等运算符(): 会自动转换数据类型
严格相等运算符(
=): NaN不等于NaN及+0 === -0

2.Object.assign():对象的合并,将原有对象复制到目标对象中(target)
第一个参数是目标对象,后面的参数都是源对象。
不是对象,则会先转换为对象。
undefined和null无法转换则报错。但是以上两者不作为target,作为source对象,则不报错且跳过。
如果参数是数值,字符串,布尔值。字符串会以字符数组的形式被合并,其余两个跳过。
前后对象存在同名属性,则后面覆盖前面。

3.Object.getOwnPropertyDescriptors():返回指定对象所有自身属性(非继承属性)的描述对象。
该方法的引入目的,主要是为了解决Object.assign()无法正确拷贝get属性和set属性的问题。

4.Object.setPrototypeOf()(写操作)、Object.getPrototypeOf()(读操作)、Object.create()(生成操作)代替。都是对原型链的操作。

5.Object.keys(): 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。通俗讲就是遍历对象的key值。

6.Object.values(): 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。通俗讲就是遍历对象的value值。其中返回数组的成员顺序,若属性名为数值的属性,是按照数值大小,从小到大遍历的。

7.Object.entries() : 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组。

8.Object.fromEntries() : 用于将一个键值对数组转为对象。该方法的主要目的,是将键值对的数据结构还原为对象,因此特别适合将 Map 结构转为对象。

二、字符串的扩展

1.字符的unicode码扩展:
在\u后面跟上超过0xFFFF的数值,用大括号包裹能正确的显示。

2.CodePointAt()
能够正确处理 4 个字节储存的字符,返回一个字符的码点。测试一个字符由两个字节还是由四个字节组成的最简单方法。

3.String.fromCodePoint()
总的来说就是为了解决ES5不能正确返回大于0xFFFF的码点。fromCodePoint方法定义在String对象上,而codePointAt方法定义在字符串的实例对象上。

4.Normalize()
许多欧洲语言有语调符号和重音符号。

5.新增的方法:(5.1 5.2 5.3对比方法ES5中的indexOf(),lastIndexOf())
5.1 includes(“要搜索的值”,”搜索的位置”) 返回布尔值,表示是否找到了参数字符串。
5.2 Startswith(“要搜索的值”,”搜索的位置”) 返回布尔值,表示参数字符串是否在原字符串的头部。
5.3 Endswith(“要搜索的值”,”搜索的位置”) 返回布尔值,表示参数字符串是否在原字符串的尾部。
5.4 Repeat() 返回一个新的字符串,表示将原字符串重复n次
5.5 PadStart() 某个字符串不够指定长度,会在头部补全。padStart()用于头部补全。
5.6 padEnd() 某个字符串不够指定长度,会在尾部补全。padEnd()用于尾部补全。
5.7 模板字符串:用反引号(`),它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。模板字符串中嵌入变量,需要将变量名写在${}之中。
5.8 String.raw() 作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用。

三、正则的扩展

1.新增U修饰符,ES5中有g,i,m这里ES6添加了u。含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。
2. 新增Y修饰符,y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。
3. 新增s修饰符,ES2018 引入s修饰符,使得.可以匹配任意单个字符。例如:换行符,回车符,行分隔符,段分隔符。这种也称为dotAll模式。
4. String.prototype.matchAll():可以一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组,所以可以用for…of循环取出。

四、函数的扩展

后续补充

五、数组的扩展

1.新增的方法:
1.1 Array.from():将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。
这里提一点:可以配合set来进行数组的去重
Let a = [1,2,3,1,2,3,3,3,2,1];
Console.log(Array.from(new Set(a))) // [1,2,3]
1.2 Array.of(): 用于将一组值,转换为数组,基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载。
1.3 copyWithin(target,start=0,end=this.length):将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。
1.4 Find():,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。
1.5 findIndex():返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
1.6 Fill():用给定值,填充一个数组,还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
1.7 Entries(),keys(),values():可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
1.8 Includes():返回一个布尔值,表示某个数组是否包含给定的值。
1.9 Flat(),flatMap():用于将嵌套的数组“拉平”,变成一维的数组;对原数组的每个成员执行一个函数,然后对返回值组成的数组执行flat()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值